用户->有很多问题->有很多答案
我想为每个问题显示一个最新答案的用户问题信息。
$questions = Question::select('id','user_id',
'title','video','status','created_at')
->where('user_id','=',$user->id)
->where('status','>=','2')
->with([
'user' => function($query){
$query->select('id','name','picture');
},
'answers' => function($query){
$query->select('id','question_id','user_id','answer','created_at',DB::raw('count(*) as answer_count'))
->orderBy('created_at','desc')->first();
},
])->get();在这里,我没有得到每个问题的答案。我得到了用户提交的所有问题的答案
你能帮帮我吗?如何将放在解答的问题id上
预期产出:
User [id, name, and so on ] ->
question [
['id', 'title' ..]->Answer['id','question_id',etc ],
['id', 'title' ..]->Answer['id','question_id',etc ]
]



发布于 2016-09-10 15:11:32
$questions = Question::select('id','user_id','title','video','status','created_at')->with([
'user' => function($query){
$query->select('id','name','picture');
}
])->where('status','>=','2')->get();
foreach($questions as $question)
{
$question_data[] = [
'id' => $question->id,
'title' => $question->title,
'video' => $question->video,
'user_id' => $question->user_id,
'status' => $question->status,
'created_at' => $question->created_at->toDateTimeString(),
'thumbnail' => $question->thumbnail,
'user' => [
'id' => $question->user->id,
'name' => $question->user->name,
'picture' => $question->user->picture
],
'answers' =>
$question->answers()->select('video','question_id','user_id','created_at','thumbnail')
->with([
'user' => function($query){
$query->select('id','name','picture');
}
])->orderBy('created_at','desc')->first()];
}发布于 2016-09-03 06:16:20
您需要从获取用户的问题和答案开始,而不是从问题本身开始,以获得预期的输出:
$user = User::select('id','name','picture')->with([
'questions' => function($query){
$query->select('id','user_id','title','video','status','created_at');
$query->where('status','>=','2');
},
'questions.answers' => function($query){
$query->select('id','question_id','user_id','answer','created_at',DB::raw('count(*) as answer_count'));
$query->orderBy('created_at','desc')->first();
},
])->findOrFail($user_id);现在,您应该能够得到所有的问题,由给定的用户和他们的最新答案如下:
foreach($user->questions as $question) {
$answer = $question->answers;
}https://stackoverflow.com/questions/39303689
复制相似问题