我已经集成了 Jamie Rumbelow My Model,用于使用来自 github 的 codeigniter 进行事件记录查询 - https://github.com/jamierumbelow/codeigniter-base-model
我想使用正常的 codeigniter 语法来执行具有多个参数的 where ,但不确定如何使用标准 codeigniter 语法,如下所示:
$this->db->where('active', 1);
$this->db->where('type', 'news');
任何人都可以建议如何使用此 MY_Model 完成此操作吗?
例如...这可行,但只允许一列及其值 - 我如何使用多个列和值来做到这一点
$this->news_model->get_many_by('active', 1);
最佳答案
MY_Model 的 get_
方法接受与 CodeIgniter 的查询生成器(以前称为 Active Record)的 where
相同的参数。这意味着您可以传递数组:
$this->news_model->get_many_by(array( 'key' => 'value', 'other_key' => 'value' ));
如果您正在做比这更复杂的事情,您也可以创建自己的范围界定方法。范围界定方法是在 MY_Model 中进行查找的“正确”方法。
范围界定方法为查找提供上下文和可读性。在您的示例中,您正在查找活跃的新闻文章,因此我们可以在我们的模型上为这些确切的文章创建一个范围界定方法:
class News_model extends MY_Model
{
public function active_news()
{
$this->db->where('active', 1);
$this->db->where('type', 'news');
return $this;
}
}
由于我们返回 $this
,因此我们可以将这些方法链接到其他 MY_Model 方法上。在我们的 Controller 中:
$this->data['news'] = $this->news_model->active_news()->get_all();
这为我们提供了更容易记住、更清晰、更人性化的语法。
关于codeigniter - 我的模型(作者:Jamie Rumbelow)- 如何将 'where' 与模型一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072418/