Laravel 检索已完成课程的问题

Laravel 检索已完成课程的问题,laravel,eloquent,Laravel,Eloquent,我是Laravel 6的新手,为学生创建了一个应用程序。我的数据库的表如下所示: @extends('layouts/app') @section('content') <div class="row justify-content-center"> <div class="jumbotron col-8"> <h4 class="display-4">{{ __('Finished Projects') }}</h4>

我是Laravel 6的新手,为学生创建了一个应用程序。我的数据库的表如下所示:

@extends('layouts/app')

@section('content')

<div class="row justify-content-center">
    <div class="jumbotron col-8">
        <h4 class="display-4">{{ __('Finished Projects') }}</h4>
        <ol>
        @foreach(Auth::user()->projects as $project)
            @if($project->comments)
                @if($project->completed === 1)

                    <li>{{ $project->title }}</li>

                @endif
            @endif
        @endforeach
        </ol>
        <a href="/home" class="btn btn-info">{{ __('Back')}}</a>
    </div>
</div>
@endsection
元课程 -程序id -头衔

$projects -用户id -课程号 -头衔 -完成 -评论

我有两个具有不同权限的用户(管理员和成员)。管理员用户可以决定项目是否完成(复选框)。每个项目都属于一门课程(课程id)

我有一个success.blade.php,如下所示:

@extends('layouts/app')

@section('content')

<div class="row justify-content-center">
    <div class="jumbotron col-8">
        <h4 class="display-4">{{ __('Finished Projects') }}</h4>
        <ol>
        @foreach(Auth::user()->projects as $project)
            @if($project->comments)
                @if($project->completed === 1)

                    <li>{{ $project->title }}</li>

                @endif
            @endif
        @endforeach
        </ol>
        <a href="/home" class="btn btn-info">{{ __('Back')}}</a>
    </div>
</div>
@endsection

您可以通过此查询访问已完成的每个项目的desire课程:

$course = Course::find($project['course_id']);
使用关系


添加控制器以获得更好的回答Hanks Hossein,但是我必须在success.blade.php中如何处理这个问题?我试图将新的$course变量发送到视图,但出现了一个错误“Undefined variable:project”@Tianma1970,首先,将您的控制器添加到您的问题中。然后我将告诉您如何在BladeTanks Albert Ramos中处理,我尝试了它,但得到了以下错误:为foreach()提供的参数无效(View:/Applications/AMPPS/www/zenit/resources/views/success.blade.php)您在模型中定义了关系吗?您有@if($project->completed==1),但在您的迁移中不存在此字段,在哪里声明了?我的projects表中有一列“completed”,您定义了关系吗?如果是这样的话,$project->courses应该可以工作,那么您得到的错误意味着$project->courses没有任何项目。谢谢您的帮助,现在它可以工作了!我忘了模型中的关系
// From controller you can do 
$courses = Course::whereHas('project', function($q){
   $q->where('completed', true);
})->get();



// Also this way
$completedProjects = Project::where('completed', true)->get();


// Blade view
@foreach($completedProjects as $project)

  @foreach($project->courses as $course)
      {{ $course->title }}
  @endforeach

@endforeach