簡體   English   中英

Laravel 從關系表中獲取數據

[英]Laravel Get Data From Relation Table

我正在使用 Laravel 7.28 構建一個項目。 我有三個名為的表; 項目、標簽和 project_tags。 在 project_tags 表中有 project_ids 和 tag_ids。 它看起來像這樣:

數據庫模式

我需要獲取所有帶有標簽的項目,其次我需要獲取帶有特定標簽的項目。 那么我應該在模型中做什么? 哪個 function 和我應該如何使用? 以及如何獲取數據?

我發現了 rtconner/laravel-tagging package 但這是正確的方法嗎? 謝謝你的幫助

您可能希望在項目和標簽之間創建多對多關系。

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');
})

此外,標簽往往是多態的多對多關系。 因此,如果您想長期手動處理標記,我建議您采用這種方式進行設計。

此外,檢查spatie/laravel-tags package。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM