dongqing4070 2013-01-11 04:43
浏览 67
已采纳

Laravel设置了自动WHERE子句

I use models that extend a generic_model, which in turn extends Eloquent (so that I have several crud methods I use already set to be inherited).

A lot of the tables I use invoke soft delete, which needs a WHERE clause of...

WHERE deleted = 0

Is there a way to make Laravel behave in such a way that this WHERE clause is automatically included in all queries and all queries to objects that are related to one another?

e.g.

pages where id = 5 and deleted = 0

and then...

images where page_id = 5 and deleted = 0
  • 写回答

2条回答 默认 最新

  • doushi3715 2013-06-16 18:58
    关注

    if you're using laravel 3 this is what you needs

    on your model

    public function query()
    {
    
        $query = parent::query();
    
        $query->where('deleted','=','0');
    
        return $query;
    }
    

    if you're using laravel 4 just change the method query for newQuery

    public function newQuery()
    {
    
        $query = parent::newQuery();
    
        $query->where('deleted','=','0');
    
        return $query;
    }
    

    reference

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?