我想在执行前更改查询,例如
Event::listen('which event?', function($query) {
$query->where('foo', 'bar');
});
以便Example::where('name', 'baz')->get()
生成此sql代码:
select * from example where name = 'baz' and foo = 'bar'
。
这可能吗?
答案 0 :(得分:1)
通常最好使用模型global scope处理。
有时您可能希望定义适用于在模型上执行的所有查询的范围。从本质上讲,这就是Eloquent自己的"软删除"功能有用。全局范围是使用PHP特征和Illuminate \ Database \ Eloquent \ ScopeInterface的实现的组合定义的。