Php 按关系分组和按关系排序字段

Php 按关系分组和按关系排序字段,php,laravel,eloquent,laravel-6,eloquent-relationship,Php,Laravel,Eloquent,Laravel 6,Eloquent Relationship,我有一些型号需要按一定顺序列出。我有许多属于项目的任务:一个项目可以有许多任务,几个任务可以属于许多项目 在我的TaskController@index我想列出所有任务,按Project.id和Project.updated\u分组。例如: Project 1 - Task 1 - Task 2 - Task 3 Project 2 - Task 1 - Task 2 - Task 3 如何在TaskController中以最简单的方式解决此问题?解决问题的关键是扩展与查询函数的关系: $t

我有一些型号需要按一定顺序列出。我有许多属于
项目的
任务
:一个
项目
可以有许多
任务
,几个
任务
可以属于许多
项目

在我的
TaskController@index
我想列出所有
任务
,按
Project.id
Project.updated\u分组。例如:

Project 1
- Task 1
- Task 2
- Task 3

Project 2
- Task 1
- Task 2
- Task 3

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

解决问题的关键是扩展与查询函数的关系
$this->hasMany('Task')->orderBy('updated_at')

例如:

您的
Project.php
模型:

<?php

class Project
{
    public function tasks()
    {
        return $this->hasMany('Task')->orderBy('updated_at');
    }
}
您的
projects.blade.php
blade文件:

@foreach($projects as $project)

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

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

@endforeach
@foreach($projects作为$project)
{{$project->name}

    @foreach($project->tasks作为$task)
  • {{$task->name}
  • @endforeach
@endforeach
laravel为您的任务提供了非常好的文档和简单的解决方案,请检查@Rebence我的回答是否引导您走上了正确的轨道?@PhilMarc不完全正确,但我用另一种方法解决了它。谢谢你的回答。
@foreach($projects as $project)

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

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

@endforeach