1

甚至可以在codeigniter中做这样的事情吗?一般来说它被认为是一种好的做法吗?

4

2 回答 2

2

是的,有可能。

我一直这样做,如果数据不是来自帖子,我可以将其发送到模型。

$this->load->model('some_model');
$this->some_model->some_function($var);

你想向模型发送什么数据?这将有助于确定这是否是不好的做法。

于 2010-10-25T01:16:25.460 回答
1

当然有可能!就像 Kieran 展示的那样,您可以在模型类中编写接受参数的函数。

请记住,您的控制器应首先解析/验证这些参数,您的模型中不应包含额外的验证。您的模型应严格用于写入和读取数据库。

因此,作为一种好的做法,您应该只传递包含要在查询中存储或使用的实际数据的参数。

我通常为不同的 WHERE 情况编写不同的函数。例如:

select($id){}
select_by_name($name){}
...

这使您的模型易于理解。我做的唯一例外是在限制你的结果的情况下。在我的所有模型中,我都有选择所有记录的功能,并可以选择传递另外两个变量以进行分页:

select_all($start=null,$limit=null){
    $qry = "SELECT * FROM ...";
    if($start != null) $qry .= " LIMIT ?,?";
    return $this->db->query($qry,func_get_args());
}
于 2010-10-25T08:40:04.387 回答