如何检查用户是否在laravel eloquent的其他表中有记录?

时间:2017-08-25 10:26:00

标签: laravel-5 laravel-eloquent laravel-query-builder

我有三张桌子。

Users: id|name

Questions: id|name

Answers: id|user_id|question_id

现在我想检查登录用户是否回答了任何问题。 这是我在控制器中的查询。

  Question::orderBy('id','desc')->get();
  Answer::whereUserId(Auth:id()->get();

现在我如何在视野中匹配它?

1 个答案:

答案 0 :(得分:0)

我不明白你的意思是“在视野中匹配”。

但在您的控制器中,您可以执行以下操作:

$answered = App\Answers::where("user_id",auth()->user()->id)->get();

但是作为一个建议:我会在用户模型中创建一个你可以调用的hasMany Relation:

auth()->user()->answers;

//

编辑:如果你想在视图中处理这个,你可以写:

@foreach($questions as $question)
   @if($question->user_id == auth()->user()->id)
     {{question->name}}
   @endif
@endforeach
超级不优雅。但可能是你的意思。