在模型中调用多个方法或在控制器中调用CodeIgniter?

时间:2013-09-20 04:33:14

标签: php codeigniter oop

我是OOP和CodeIgniter的新手。当我分离模型的方法时,我在控制器中调用它。但现在,我发现另一种方法是在模型中调用它。使用下面的方式是好还是不好:

型号:

function q_insert($id) {
  //get value from q_select model
  $s = $this->q_select($id);
  $data = array(
           'User' => $s->row()->Name;
         }
  $this->db->insert('tblPOS', $data);
}

function qu_select($id) {
 $this->db->select('Name, ID');
 $this->db->from('tblUser');
 $this->db->where('ID', $id);
}

控制器:

function create_pos($id) {
  $this->model->q_insert($id);
}

2 个答案:

答案 0 :(得分:2)

你的用法很好。如果您将值设置为$ this-> db对象并调用另一个具有另一组DB类值的方法,那将是一种不好的做法。这可能会让你遇到问题

糟糕的做法

function get_users(){
$this->db->select('name');
$this->db->where('a', $a);
$children = $this->_get_children();
$this->db->where_not_in($children);
$this->db->get('parents');
}

答案 1 :(得分:1)

如果你从模特本身管理你的控制器请求,那绝对没问题。

比方说,如果您要保存记录。

如果提交的表单数据具有(隐藏)id值,则表示您正在更新记录,否则,您正在添加新记录。

如果您在表单提交后使用所有提交的数据从控制器调用函数,则可以在模型本身中检查您是要添加还是更新数据。

根据具体情况,您可以调用插入或更新功能。

您的方法/概念绝对优秀且非常受欢迎。