【问题标题】:Laravel: check relationshipLaravel:检查关系
【发布时间】:2015-05-07 15:13:55
【问题描述】:

请多多包涵,我不擅长解释事情,而且我认为标题不适合我的问题。

我有一个用户模型和一个课程模型。 这些模型具有多对多关系。

目前有 4 门课程,但用户只与其中 2 门有关系(比如说课程 1 和 3)。

在某个页面上,我想输出所有课程,并突出显示用户与之有关系的课程,以便它可以查看课程。因此,课程 1 和 3 将突出显示,而课程 2 和 4 将被淡化。

用户模型:

public function courses()
{
    return $this->belongsToMany('App\Course');
}

课程模式:

public function users()
{
    return $this->belongsToMany('App\User');
}

控制器

public function index()
{
    $member = $this->auth->user();
    $courses = $this->courserepository->getAllCourses(); // Course 1,2,3,4
    $member_courses = $member->courses; // Course 1,3

    // Logic to filter courses which are in a relationship with the User

    return view('member.course.index', compact('member', 'courses'));
}

我希望我有更多的代码,但我已经删除了大部分代码,因为它没有像怀疑的那样工作。我正在寻找可以为我指明正确方向的人。

【问题讨论】:

    标签: laravel eloquent laravel-5 blade


    【解决方案1】:

    在控制器中替换:

    $member = $this->auth->user()->with('courses');
    

    然后在视图中:

    <ul>
    @foreach($courses as $course)
        <li@if(in_array($course['id'], array_column($member['courses'], 'id'))){{' class="highlighted"'}}@endif>
            {{$course->name}}
        </li>
    @endforeach
    </ul>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-25
      • 2020-06-21
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多