2017-01-19 21 views
1

どのように雄弁モデルでこれを表現するための最良の方法である:Laravel、雄弁

求人 - 多対多 - (プロバイダ - 多対多 - サービス)

テーブル:

| providers | services |services_providers | jobs  | jobs_services_providers 
-------------------------------------------------------------------------------------- 
| id  | id  | id    | id  | id      | 
|   |   | providers_id  |   | services_providers_id  | 
|   |   | services_id  |   | job_id     | 
|   |   | price    |   | price      | 

ありがとう! 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'); 
    } 
} 

モデルサービスのようになります入手可能ですLaravel公式ドキュメントを使用して

答えて

1

class Services extends Model {  
    public function providers(){ 
     return $this->belongsToMany('App\Providers'); 
    }  
} 

あなたは、ピボットテーブルを使用している場合、あなたはあなたが雄弁で、ピボットの関係であなたのフィールドをカスタマイズしたい場合は、

return $this->belongsToMany('App\Providers', 'services_providers', 'service_id', 'provider_id'); 

ようなものを使用するモデルで

return $this->belongsToMany('App\Providers', 'services_providers'); 

をピボットテーブルを定義することができます他のすべてのヘルプについては、使用するとうまくいくはずですLARAVEL OFFICIAL DOCUMENTATION

希望に役立ちます