3

我是 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);
}
4

2 回答 2

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');
}
于 2013-09-20T09:39:58.040 回答
1

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

例如,如果您要保存记录。

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

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

根据这一点,您可以调用插入或更新函数。

您的方法/概念非常好,非常受欢迎。

于 2013-09-20T05:36:09.000 回答