如何在循环中仅返回两个值

时间:2018-08-06 08:29:07

标签: laravel

该应用程序旨在对在线上传的视频进行评分,并使用不同类别的裁判。

我在控制器中

$watched = Upload::with('scoresheet')->get();

在上传和评分表之间进行了重新分配。 在我的控制器中,我正在使用“ with”来急切地抓住这种关系,以便让谁为视频打分。

现在,我尝试遍历并显示符合条件的ifesle语句的得分或未得分

@foreach($watched as $scoredvideo)
    @foreach($scoredvideo->scoresheet as $seen)
        @if($seen->user_id == Auth::user()->id && $seen->upload_id == $video->id)
            Scored
        @else
            Not Scored
        @endif
    @endforeach 
@endforeach

但是,它继续返回已被计分的视频数量的消息。

请参阅下文

在这里,已经为三个视频打了分。

我尝试使用break,它仅显示“计分”的真实值并终止循环。

我该如何解决呢?

1 个答案:

答案 0 :(得分:0)

您的问题不是很清楚,但是如果我理解正确,您正在尝试了解登录的用户是否对视频进行了评分。我会做这样的事情。

@foreach($videos as $video)

    //render the video object however you want in your view

    //and use this if to know if the logged in user has already scored the video
    @if($video->Scoresheet()->where('user_id', Auth::user()->id)->exists())
        scored
    @else
        Not Scored

@endforeach