在Eloquent中建立关系



我有3个表:

  • <
  • 工作/gh><
  • 类别/gh>

项目有作业,作业被分配给类别。作业表包含一个项目ID和一个类别ID,也就是说,作业链接到项目和类别。我的quetion:

  • 如何在项目模型上建立关系以查询给定类别ID的项目
  • 如何在类别模型上设置关系以查询项目

明白了!

查询项目模型上的类别。在这个关系中,表示可以查询所有类别记录他们的作业分配给。

// In Project model class
public function categories()
{ 
$relation = $this->hasManyThrough(
Category::class,  // target model
Job::class,       // intermediate model
'project_id',     // column with project ID in jobs table
'id',             // ID column in categories table
'id',             // ID column in projects table
'category_id'     // column with category ID in jobs table
);
// remove duplicates
$relation->getQuery()->distinct();
return $relation;
}

在类别模型上查询项目。在这个关系上,categories可以查询所有项目作业记录

// In Category model class
public function projects()
{
$relation = $this->hasManyThrough(
Project::class,     // target model
ProjectJob::class,  // intermadiate model
'category_id',      // column with category ID in jobs table
'uuid',             // ID column in projects table
'uuid',             // ID column in categories table
'project_id'        // column with project ID in jobs table
);
// remove duplicates
$relation->getQuery()->distinct();
return $relation;
}

相关内容

  • 没有找到相关文章

最新更新