Laravel Query Builder - 在执行查询之前挂钩

时间:2015-04-14 20:58:09

标签: laravel eloquent

我想在执行前更改查询,例如

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'

这可能吗?

1 个答案:

答案 0 :(得分:1)

通常最好使用模型global scope处理。

  

有时您可能希望定义适用于在模型上执行的所有查询的范围。从本质上讲,这就是Eloquent自己的"软删除"功能有用。全局范围是使用PHP特征和Illuminate \ Database \ Eloquent \ ScopeInterface的实现的组合定义的。