所以我有一個擴展模型(MY_Model)CI中的一句代碼:使用單個get函數適用於所有型號
function get($options = array(), $selects = array(), $joins = array(), $table, $object = TRUE)
{
if(!empty($options))
{
foreach($options as $option => $array)
{
foreach($array as $column => $value)
{
$this->db->{$option}($column, $value);
}
}
}
if(!empty($select))
{
foreach($selects as $select)
{
$this->db->select($select);
}
}
if(!empty($joins))
{
foreach($joins as $join => $array)
{
foreach($array as $jointable => $column)
{
$this->db->join($join, $join.'.'.$column.'='.$jointable.'.'.$column);
}
}
}
$query = $this->db->get($table);
return $query->result();
}
在哪裏我可以通過它的陣列象下面這樣:
$options = array(
'where' => array(
'companys.companyID' => $companyID
)
);
$select = array(
'companyID',
'companyName'
);
$join = array(
'persons' => array(
'companys' => 'companyID'
)
);
$result = $this->companyModel->get($options, $select, $join, 'companys');
print_r('<pre>');
print_r($result);
我的問題是,這是不是一個好主意的原因。我在我自己的MY_Model中擴展了默認的CI_Model,然後所有其他模型都可以使用這個get,並且仍然有自己的功能。對於其他基本的CRUD操作,我有類似的功能。
另一種分離模型中的功能來完成大部分工作並使最小的控制器可能成爲最佳路線的方式。即使這意味着你在所有模型中都編寫了相同的代碼塊?
希望這不是一個愚蠢的問題,或者我誤解了一些關於MVC的核心,但是謝謝你的回覆。