搜尋

首頁  >  問答  >  主體

關聯物件 - laravel\lumen 條件關聯應該如何處理?

我目前有3個表,tagsproductalbum

productalbum相關聯的標籤都在tags裡面。透過biz_type進行區分,1表示product, 2表示album

表關係如下

table_tags
    id: int
    biz_type: int 
    biz_id: int

table_product
    id: int

table_album
    id: int

我現在希望透過查詢tags的分頁列表,去關聯獲取productalbum的資訊。
目前查看了laravel的多態關聯,好像不支持這種做法。不知道有沒有什麼方法透過條件進行關聯的嗎?

给我你的怀抱给我你的怀抱2749 天前575

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-05-16 16:53:56

    Laravel的多對多關聯有講到這個,這個使用場景跟你有點類似你可以看看
    http://www.kancloud.cn/baidu/...

    Polymorphic Many To Many Relation Table Structure 多型態的多對多關聯資料庫表結構

    除了一般的多型關聯,也可以使用多對多的多型關聯。例如,Blog 的 Post 和 Video 模型可以共用多態的 Tag 關聯模型。首先,來看看資料庫表結構:

    posts

    id - integer
    name - string

    videos

    id - integer
    name - string

    tags

    id - integer
    name - string

    taggables

    tag_id - integer
    taggable_id - integer
    taggable_type - string

    現在,我們準備好設定模型關聯了。 Post 和 Video 模型都可以經由 tags 方法建立 morphToMany 關聯:

    class Post extends Model {

    public function tags()
    {
        return $this->morphToMany('App\Tag', 'taggable');
    }

    }
    在 Tag 模型裡針對每一種關聯建立一個方法:

    class Tag extends Model {

    public function posts()
    {
        return $this->morphedByMany('App\Post', 'taggable');
    }
    public function videos()
    {
        return $this->morphedByMany('App\Video', 'taggable');
    }

    }

    回覆
    0
  • 某草草

    某草草2017-05-16 16:53:56

    join?但不建議用。

    回覆
    0
  • 怪我咯

    怪我咯2017-05-16 16:53:56

    自己實作一個關聯查詢也可以啊,目前多型關聯的條件查詢因為過於複雜,框架並未提供。

    回覆
    0
  • 取消回覆