【发布时间】:2013-12-31 01:37:22
【问题描述】:
我正在将我的代码从 CodeIgniter 移植到 Laravel。并对查询生成器有一些疑问。
在 codeigniter 中,我可以将 where 子句添加到活动记录对象,因为我在类中初始化每个属性,例如
$this->db->where('xxxx','bbbb');
在一个属性初始化函数中,和
$this->db->where('yyyy','aaaa');
在另一个属性函数中,它会全部链接起来,直到我触发查询。但这似乎不是 Laravel 的情况。
这是我在 laravel 中每个属性初始化函数所做的事情
DB::table($this->table)->where('xxxx','bbbb');
DB::table($this->table)->where('yyyy','aaa');
当从外部调用实际方法时,它会运行
DB:table($this->table)->get();
但这给了我一个SELECT * FROM TABLENAME 没有任何地方的条款。那么我在这里做错了什么:x 或者我不应该将 laravel 与 codeigniter 相同,并想出一些完全不同的东西来处理这种动态 where 子句?
同样在 codeigniter 中,您可以将查询的一部分设置为缓存,因此即使在您触发查询之后,这些部分也会保留用于下一个查询,通常是 where 子句。 Laravel 中是否有类似的功能?谢谢!
【问题讨论】: