我有三个表:restaurant_location
,cuisine_restaurant_location
和美食。
我的美食表中列出了所有美食。我的restaurant_location表中有餐厅的所有详细信息。一家餐厅可以提供多种美食,因此我制作了一个表Cuisine_restaurant_location,其中有两列Cuisine_id和restaurant_id。我在restaurant_location模型中创建了一个属于很多关系。
restaurant_location模型
public function cuisines()
{
return $this->belongsToMany(Cuisine::class, 'cuisine_restaurant_location', 'restaurant_id', 'cuisine_id');
}
我有一张表格,其中应将餐厅的所有详细信息以及美食都添加进去。现在,我要添加餐厅的所有详细信息。现在的问题是如何在“ cuisine_restaurant_location”中插入美食。
控制器
$rest = new restaurant_location;
$rest->name = $request->input('name');
$rest->description = $request->input('desc');
$rest->save();
$cuisine = new cuisine_restaurant_location
$cuisine_lists = $request->input('cuisines');
foreach ($cuisine_lists as $cuisine_list) {
$cuisine->name = $cuisine_list;
}
答案 0 :(得分:0)
您可以为此使用-
和sync
方法described in the Many to many section of the eloquent documentation:
attach
$rest->cuisines()->attach([$cuisineIds])
是您要关联的美食ID的列表。
cuisineIds
和sync
之间的区别在于attach
会删除您传递的ID数组中不存在的所有ID。
答案 1 :(得分:0)
尝试sync()方法:
$h = [];
if (isset($input["cuisine_id"])) {
$h = $input["cuisine_id"];
}
$restaurant_location->cuisines()->sync($h);