我有一个包含以下字段的表格。我只想通过类型字段值连接表,例如,如果类型字段包含经验值,那么连接应该与经验表一起引用association_id字段,并且教育也一样。
- id
- title
- association_id
- type (experience,education)
任何帮助将不胜感激。
答案 0 :(得分:0)
您可以使用多态关系
主要型号:
class Association extends Model {
public function associable()
{
return $this->morphTo();
}
}
Exprience模型:
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');
}
}
另外,您应该在主模型表中添加两个额外的字段:
associable_id - integer
associable_type - string
额外信息:https://laravel.com/docs/5.4/eloquent-relationships#polymorphic-relations