如何在相同模型中进行查询

时间:2019-01-18 03:36:06

标签: laravel model eloquent

我有一个projects表,里面有type列。

我的问题是如何首先获取所有不同的type,然后再获取该类型下的所有项目。

我的目标是输出这样的列表:

Type: Type 1
Projects: project 1, project 2, project 3

Type: Type 2
Projects: project 4, project 5, project 6

我无法将typeprojects用不同的表分开并使用一种关系,因为该数据库正在被另一个项目使用,并且它已经有很多数据。

2 个答案:

答案 0 :(得分:0)

在类型模型中,您可以添加与Projects的关系,最后使用with方法在每个Type实例上包括所有项目。

一些伪代码可以是:

class Type extends Model
{
    public function projects()
    {
        return $this->hasMany('App\Project');
    }
}    


function test() 
{
    $types = Types::with('projects')->get();
    foreach ($types as $type) {
        echo $type->name;
        foreach ($type->projects as $project) {
            echo $project->name;
        }
    }
}

答案 1 :(得分:0)

您可以这样做

Types::select('*')
         ->get()
         ->groupBy(DB::raw('type'));