Laravel 从关系中获取数据 Table
Laravel Get Data From Relation Table
我正在使用 Laravel 7.28 构建一个项目。我有三个 table 的名字;项目、标签和 project_tags。在 project_tags table 中有 project_ids 和 tag_ids。它看起来像这样:
我需要获取所有带有标签的项目,其次我需要获取带有特定标签的项目。那么我应该在模型中做什么?我应该使用哪个功能以及如何使用?我如何获取数据?
我发现了 rtconner/laravel-tagging 包,但这是正确的方法吗?感谢您的帮助
您可能想要在项目和标签之间创建 many to many 关系。
class Project extends Model
{
public function tags()
{
return $this->belongsToMany(Tag::class, 'project_tags')->withTimestamps();
}
}
然后:
// Get all projects with their tags.
Project::with('tags')->get();
// Get projects contain certain a certain tag.
Project::whereHas('tags', function ($query) {
return $query->where('tag', 'some value');
})
此外,标签往往是一种polymorphic many to many关系。所以如果你想长期手动处理标签,我建议这样设计。
此外,结帐 spatie/laravel-tags 包裹。
我正在使用 Laravel 7.28 构建一个项目。我有三个 table 的名字;项目、标签和 project_tags。在 project_tags table 中有 project_ids 和 tag_ids。它看起来像这样:
我需要获取所有带有标签的项目,其次我需要获取带有特定标签的项目。那么我应该在模型中做什么?我应该使用哪个功能以及如何使用?我如何获取数据?
我发现了 rtconner/laravel-tagging 包,但这是正确的方法吗?感谢您的帮助
您可能想要在项目和标签之间创建 many to many 关系。
class Project extends Model
{
public function tags()
{
return $this->belongsToMany(Tag::class, 'project_tags')->withTimestamps();
}
}
然后:
// Get all projects with their tags.
Project::with('tags')->get();
// Get projects contain certain a certain tag.
Project::whereHas('tags', function ($query) {
return $query->where('tag', 'some value');
})
此外,标签往往是一种polymorphic many to many关系。所以如果你想长期手动处理标签,我建议这样设计。
此外,结帐 spatie/laravel-tags 包裹。