【发布时间】:2020-03-16 07:11:41
【问题描述】:
这是我的架构:
User 型号正常。
Question
- team_id
- question_body
Answer
- user_id
- question_id
- order
- is_private
用户可以有一个问题的主要答案,该答案本质上是具有最低顺序且公开的答案。
我需要为除经过身份验证的用户之外的每个用户获取问题的主要答案。以下是我目前对问题模型的了解:
return User::with(['answers' => function ($query) {
return $query->where('question_id', $this->getKey())
->orderBy('order')
->public();
}])
->where('id', '!=', Auth::user()->getKey())
->get();
在我的测试中,我正在创建一个具有两个公共答案的用户和另一个具有私人答案然后是公共答案的用户。第二个用户的私人答案的顺序较低。当我运行测试时,我会得到用户对order 排序的给定问题的所有公开答案。我只想要第一个,所以我将first() 添加到子查询中,它为具有两个公共答案的用户提供了正确的数据,但对于第二个用户,它返回一个空集合。如果有人有任何想法,他们将不胜感激。谢谢!
【问题讨论】:
-
正确使用关系用户问题联络
标签: php sql database laravel eloquent