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.
}