Laravel:An实体有2个外键如何显示属于特定table的实体?
Laravel:An entity has 2 foreign keys how to display that entity which belong to the specific table?
我有一个实体调用提交,它有 2 个外键用户和任务。
一个用户有多个提交,提交属于多个用户。
一个任务有多个提交,提交属于多个任务。
在我的控制器中
public function go_to_self_marking($id){
$task = Task::find($id);
//auth user
$user = auth()->user();
$task_criterias = $task->criterias;
$user_submissions = $user->submissions;
//user task criterias submission
return view('criterias/self-marking')
->with('task_criterias',$task_criterias)
->with('task',$task)
->with('user_submissions',$user_submissions);
}
在我看来
<div>
@if($user_submissions!== null )
@foreach($user_submissions as $user_submission)
<object type="text/html" data="{{$user_submission->url}}"
width="400px" height="350px"
style="overflow:auto;border:5px ridge blue">
</object>
@endforeach
@else
<p>No submissions</p>
@endif
</div>
这样我可以显示所有的提交,但是不能实现提交属于指定的任务。
我的每个任务都显示所有链接到用户的提交。我该如何解决这个问题?
我更改了控制器中的代码
public function go_to_self_marking($id,Submission $submission){
$task =Task::find($id);
//auth user
$user = auth()->user();
$task_criterias =$task->criterias;
$task_submissions =$task->submissions;
//user task criterias submission
return view('criterias/self-marking')->with('task_criterias',$task_criterias)
->with('task',$task)->with('task_submissions',$task_submissions)->with('submission',$submission);
}
在我看来
{{--@if(Auth::user()->id == $submission->id)--}}
@if($task_submissions!== null )
@foreach($task_submissions as $task_submission)
<object type="text/html" data="{{$task_submission->url}}" width="400px" height="350px" style="overflow:auto;border:5px ridge blue">
</object>
@endforeach
@else
<p>No submissions</p>
@endif
{{--@endif--}}
现在提交属于指定任务,但每个用户都可以访问提交。
我相信您需要 submissions
,它属于特定的 user
和特定的 task
。
在你的控制器函数中。
public function go_to_self_marking($id)
{
$task = Task::find($id);
$user = auth()->user();
// these are the submissions you want.
$user_task_submissions = $task->submissions()
->where('user_id', $user->id)
->get();
...
...
// rest of the code goes here.
// send these $user_task_submissions to your view.
// and iterate over them in your view.
}
我有一个实体调用提交,它有 2 个外键用户和任务。 一个用户有多个提交,提交属于多个用户。 一个任务有多个提交,提交属于多个任务。 在我的控制器中
public function go_to_self_marking($id){
$task = Task::find($id);
//auth user
$user = auth()->user();
$task_criterias = $task->criterias;
$user_submissions = $user->submissions;
//user task criterias submission
return view('criterias/self-marking')
->with('task_criterias',$task_criterias)
->with('task',$task)
->with('user_submissions',$user_submissions);
}
在我看来
<div>
@if($user_submissions!== null )
@foreach($user_submissions as $user_submission)
<object type="text/html" data="{{$user_submission->url}}"
width="400px" height="350px"
style="overflow:auto;border:5px ridge blue">
</object>
@endforeach
@else
<p>No submissions</p>
@endif
</div>
这样我可以显示所有的提交,但是不能实现提交属于指定的任务。 我的每个任务都显示所有链接到用户的提交。我该如何解决这个问题?
我更改了控制器中的代码
public function go_to_self_marking($id,Submission $submission){
$task =Task::find($id);
//auth user
$user = auth()->user();
$task_criterias =$task->criterias;
$task_submissions =$task->submissions;
//user task criterias submission
return view('criterias/self-marking')->with('task_criterias',$task_criterias)
->with('task',$task)->with('task_submissions',$task_submissions)->with('submission',$submission);
}
在我看来
{{--@if(Auth::user()->id == $submission->id)--}}
@if($task_submissions!== null )
@foreach($task_submissions as $task_submission)
<object type="text/html" data="{{$task_submission->url}}" width="400px" height="350px" style="overflow:auto;border:5px ridge blue">
</object>
@endforeach
@else
<p>No submissions</p>
@endif
{{--@endif--}}
现在提交属于指定任务,但每个用户都可以访问提交。
我相信您需要 submissions
,它属于特定的 user
和特定的 task
。
在你的控制器函数中。
public function go_to_self_marking($id)
{
$task = Task::find($id);
$user = auth()->user();
// these are the submissions you want.
$user_task_submissions = $task->submissions()
->where('user_id', $user->id)
->get();
...
...
// rest of the code goes here.
// send these $user_task_submissions to your view.
// and iterate over them in your view.
}