codeigniter - 我的模型(作者:Jamie Rumbelow)- 如何将 'where' 与模型一起使用

标签 codeigniter activerecord model

我已经集成了 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_Modelget_ 方法接受与 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/

相关文章:

php - 连接具有第一个表中的重复项的表 Code Igniter Active Records

php - 解析器和 View 调用之间有什么区别?如何从 View 中检索数据? (通过,返回)

sql - 如何模拟ActiveRecord Model.count.to_sql

python - 如何加载预训练的Word2vec模型文件?

javascript - 使用 php 变量和 javascript 打印 html

mysql - 选择 codeigniter 中其他表中不存在的记录

ruby-on-rails - Ruby on Rails - 如何在脚手架中创建外键

ruby-on-rails-3 - 在 ActiveRecord 中标记无效属性

python 3 : No module named 'sklearn.model_selection'

python - 如何为 Django 模型中的用户名匹配数据库中的确切大小写?