2017-08-04 109 views
1

我有一个表格,其中包含下面的字段。我只是想通过类型字段值来连接表,例如,如果类型字段包含经验值,那么连接应该以经验表引用association_id字段,并且对于教育也是一样。如何使用Laravel查询生成器按字段值连接不同的表?

- id 
- title 
- association_id 
- type (experience,education) 

任何帮助将不胜感激。

+0

你只有两个'enum'型列类型?如果它可以使用sql来实现,那么在查询构建器中显然是可行的。 –

+0

[有两种类型标志的表上的Laravel关系可能重复](https://stackoverflow.com/questions/35057540/laravel-relationships-on-a--a-table-with-two-types-of-flags) –

+0

这不是一个重复的问题,因为我询问查询生成器不是用于雄辩 –

回答

0

您可以使用多态关系

主要型号:

class Association extends Model { 
    public function associable() 
    { 
     return $this->morphTo(); 
    } 
} 

先进经验型号:

class Exprience extends Model { 
    public function associates() 
    { 
     return $this->morphMany(Association::class, 'associable'); 
    } 
} 

教育模式:

class Education extends Model { 
    public function associates() 
    { 
     return $this->morphMany(Association::class, 'associable'); 
    } 
} 

你也应该增加两个额外的外商投资企业LDS你的主模型表格:

associable_id - integer 
associable_type - string 

额外的信息:https://laravel.com/docs/5.4/eloquent-relationships#polymorphic-relations

+0

先生我正在使用查询生成器而不是雄辩,如果您可以发布关于查询生成器连接。 –

相关问题