suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Assoziationsobjekt - laravel\lumen Wie soll mit der bedingten Assoziation umgegangen werden?

Ich habe derzeit 3 ​​Tische,tagsproductalbum.

productalbum相关联的标签都在tags里面。通过biz_type进行区分,1表示product, 2表示album.

Die Tabellenbeziehung ist wie folgt

table_tags
    id: int
    biz_type: int 
    biz_id: int

table_product
    id: int

table_album
    id: int

Ich hoffe jetzt, die polymorphe Assoziation von tags的分页列表,去关联获取productalbum的信息。
目前查看了laravel abzufragen, aber es scheint, dass dieser Ansatz nicht unterstützt wird. Gibt es eine Möglichkeit, durch Bedingungen eine Beziehung herzustellen?

给我你的怀抱给我你的怀抱2799 Tage vor590

Antworte allen(3)Ich werde antworten

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

    }

    Antwort
    0
  • 某草草

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

    join?但不建议用。

    Antwort
    0
  • 怪我咯

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

    自己实现一个关联查询也可以啊,目前多态关联的条件查询因为过于复杂,框架并未提供。

    Antwort
    0
  • StornierenAntwort