如何在Eloquent Models中表示这一点的最佳方式:
职位 - ManyToMany - (提供商 - ManyToMany - 服务)
表:
| providers | services |services_providers | jobs | jobs_services_providers
--------------------------------------------------------------------------------------
| id | id | id | id | id |
| | | providers_id | | services_providers_id |
| | | services_id | | job_id |
| | | price | | price |
谢谢!
答案 0 :(得分:1)
使用可用的Laravel官方文档here,您的模型应该是
模型职位
class Jobs extends Model {
public function providers(){
return $this->belongsToMany('App\Providers');
}
}
模型提供商
class Providers extends Model {
public function jobs(){
return $this->belongsToMany('App\Jobs');
}
public function services(){
return $this->belongsToMany('App\Services');
}
}
模型服务
class Services extends Model {
public function providers(){
return $this->belongsToMany('App\Providers');
}
}
如果您使用数据透视表,则可以在模型中定义数据透视表
return $this->belongsToMany('App\Providers', 'services_providers');
如果您想在Eloquent中自定义枢轴关系中的字段,请使用类似
的内容return $this->belongsToMany('App\Providers', 'services_providers', 'service_id', 'provider_id');
对于所有其他帮助,您应该使用LARAVEL OFFICIAL DOCUMENTATION
希望有所帮助