【问题标题】:Select all soft deleted item which owner is not soft delete in Eloquent / Laravel在 Eloquent / Laravel 中选择所有者不是软删除的所有软删除项
【发布时间】:2016-07-24 10:43:45
【问题描述】:

我有一个查询要获取所有软删除锦标赛:

 $tournaments = Tournament::onlyTrashed();

Thing is Tournament 模型有一个 FK owner_id。

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

如何在 Eloquent 中获取未软删除用户的所有已删除的锦标赛???

有没有更优雅(Eloquent)的解决方案:

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

发送!

【问题讨论】:

  • 你试过has('Owner')吗?
  • 你摇滚!有用!请把它作为答案!我爱雄辩!

标签: laravel eloquent


【解决方案1】:

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

Tournament::has('Owner')

将仅选择拥有有效(现有且非软删除)所有者的锦标赛。

【讨论】:

  • 你比官方文档和 laracast 更了解雄辩的教程吗?
  • @JuliatzindelToro Laracasts 几乎是黄金标准。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-07
相关资源
最近更新 更多