0

我有三张桌子:restaurant_locationcuisine_restaurant_location美食。

我的美食表中有所有美食的清单。我的 restaurant_location 表中有餐厅的所有详细信息。一家餐厅可以有很多美食,所以我制作了一张美食美食餐厅位置表,其中有两列美食 ID 和餐厅 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;
}
4

2 回答 2

1

为此,您可以使用eloquent 文档的多对多部分中描述sync的和attach方法:

$rest->cuisines()->attach([$cuisineIds])

cuisineIds您要关联的美食的 ID 列表在哪里。sync和之间的区别在于attachsync它将删除您传递的 id 数组中不存在的所有 id。

于 2019-04-04T14:04:26.410 回答
0

尝试同步()方法:

$h = [];
if (isset($input["cuisine_id"])) {
    $h = $input["cuisine_id"];
}
$restaurant_location->cuisines()->sync($h);
于 2019-04-04T14:18:06.463 回答