Laravel设置了自动WHERE子句

jag*_*get 0 php where laravel eloquent

我使用扩展generic_model的模型,后者又扩展了Eloquent(因此我使用了几个已经设置为继承的crud方法).

我使用的很多表都调用了soft delete,它需要一个WHERE子句...

WHERE deleted = 0
Run Code Online (Sandbox Code Playgroud)

有没有办法让Laravel的行为方式使得这个WHERE子句自动包含在所有查询中,并且所有查询都相互关联的对象?

例如

pages where id = 5 and deleted = 0
Run Code Online (Sandbox Code Playgroud)

然后...

images where page_id = 5 and deleted = 0
Run Code Online (Sandbox Code Playgroud)

Bla*_*dow 7

如果您使用laravel 3,这就是您所需要的

在你的模型上

public function query()
{

    $query = parent::query();

    $query->where('deleted','=','0');

    return $query;
}
Run Code Online (Sandbox Code Playgroud)

如果你使用laravel 4只是改变了方法查询newQuery

public function newQuery()
{

    $query = parent::newQuery();

    $query->where('deleted','=','0');

    return $query;
}
Run Code Online (Sandbox Code Playgroud)

参考