2016-04-03 50 views
0

软删除我有一个查询来获取所有软删除锦标赛:选择所有软删除的项目,其业主是不是雄辩/ Laravel

$tournaments = Tournament::onlyTrashed(); 

事情是比赛模式有一个FK owner_id。

有时,所有者已被软删除,所以当我尝试获得$ tournament-> owner-> id时,我得到一个异常。

如何获取所有被删除的锦标赛用户不是软删除在Eloquent ???

是否有一个更优雅(雄辩)解决方案:

$tournaments = Tournament::onlyTrashed() 
      ->join('users', 'users.id', '=', 'tournament.user_id') 
      ->where('users.deleted_at', '=', null) 
      ->select('tournament.*') 
      ->get(); 

的Tx!

+0

你有没有试过('所有者')'? – ceejayoz

+0

你摇滚!有用!请把它作为答案!我爱口才! –

回答

1

haswhereHas(用于更复杂的关系要求)可用于将结果限制为具有活动关系的记录。

Tournament::has('Owner') 

将只选择有效(现有和非软删除)所有者的锦标赛。

+0

你比官方文档和laracasts更知道雄辩的教程吗? –

+0

@JuliatzindelToro Laracasts几乎是黄金标准。 – ceejayoz