按关系分组并按关系字段排序

问题描述 投票:0回答:1

我有一些模型需要按特定顺序列出。我有很多Task都属于Project

在我的TaskController@index中,我要列出按TaskProject.id分组的所有Project.updated_at。示例:

Project 1
- Task 1
- Task 2
- Task 3

Project 2
- Task 1
- Task 2
- Task 3

如何在TaskController中以最简单的方式解决此问题?

laravel eloquent laravel-6 eloquent--relationship
1个回答
0
投票

解决问题的关键是使用查询功能扩展关系$this->hasMany('Task')->orderBy('updated_at');

示例:

您的Project.php型号:

<?php

class Project
{
    public function tasks()
    {
        return $this->hasMany('Task')->orderBy('updated_at');
    }
}

您的TaskController.php控制器:

<?php

class TaskController
{
    public function index()
    {
        $projects = Project::with('tasks')->get();

        // Then use $projects in the blade template
    }
}

您的projects.blade.php刀片文件:

@foreach($projects as $project)

<p>{{$project->name}}</p>

<ul>
    @foreach($project->tasks as $task)
    <li>{{$task->name}}</li>
    @endforeach
</ul>

@endforeach
© www.soinside.com 2019 - 2024. All rights reserved.