2017-04-09 52 views
1

我有两个型号:Laravel雄辩 - 考虑父母的deleted_at

User: 
    id 
    parent_id (belongsTo) 
    deleted_at 

Parent: 
    id 
    deleted_at 

我使用Laravel的SoftDeletes特质。目前,当单独查询时,会过滤出usersparents(仅限于deleted_at null的行)。

但我想过滤掉user不仅当deleted_at不为空,而且当它的parentdeleted_at也不为零时。

如何将全局范围应用于我的模型,以便它会认为它也是父级的deleted_at

+1

'User :: has(“parent”) - >哪里(...)'应该工作 – apokryfos

+0

@apokryfos我知道有这样的事情!谢谢! – alashow

回答

2

你可以使用任何的方法来query existing relationship existence,我会亲自使用whereHas()方法,它提供了更多的灵活性:

User::whereHas('parent', function ($query) { 
     $query->whereDate('deletedAt', '>', 'somedate'); 
    }); 

你可以申请更多的条件之间的关系的方式。