我有三张桌子
合作伙伴表 -
id | Name
------ | ------
1 | Oracle
2 | TCS
Partner_Cities表
id | partner_id | city_id
------ | ------
1 | 1 | 2
2 | 1 | 3
城市表
id | Name
------ | ------
1 | Delhi
2 | Mumbai
现在我想要合作伙伴和城市表之间的关系。
我的合作伙伴模型
public function cities(){
return $this->belongsToMany(City::class, 'partner_cities') ;
}
和City Model有 -
public function partners(){
return $this->belongsToMany(Partner::class, 'partner_cities');
}
我正在 -
ErrorException in ObjectDataRow.php line 21:
Undefined property: Illuminate\Database\Eloquent\Collection::$name
答案 0 :(得分:0)
合作伙伴和城市已经多对多关系芯片,因此您将Partner_Cities视为 pivot 表。
https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
检查
public function partners() { return $this->belongsTo(City::class); } public function cities() { return $this->hasMany(Partner::class); }
public function partners() { return $this->belongsToMany(City::class); } public function cities() { return $this->belongsToMany(Partner::class); }
答案 1 :(得分:0)
你的伴侣模特应该更像:
public function cities(){
return $this->belongsToMany(City::class);
}
你的城市模型如:
public function partners(){
return $this->belongsToMany(Partner::class);
}
将您的partner_cities表重命名为city_partner(遵循Laravel的命名约定)并删除id列。
您可以在docs:
中详细了解许多关系