如何使用laravel中的多个关系在数据库中保存记录

如何使用laravel中的多个关系在数据库中保存记录,laravel,eloquent,eloquent-relationship,Laravel,Eloquent,Eloquent Relationship,我有三张桌子:餐厅位置、美食餐厅位置和菜系 我的菜谱表上有所有菜谱的列表。我的餐厅位置表中有餐厅的所有详细信息。一家餐厅可以有很多菜系,所以我制作了一个餐桌菜系餐厅位置,其中有两列菜系id和餐厅id。我在我的餐厅位置模型中创建了一个属于多个关系 餐厅选址模型 公共功能菜系 { return$this->belongTomanyCushine::class,‘美食餐厅位置’、‘餐厅id’、‘美食id’; } 我有一个表格,里面应该加上餐馆的所有细节和菜肴。现在我正在添加餐厅的所有细节。现在的问题是

我有三张桌子:餐厅位置、美食餐厅位置和菜系

我的菜谱表上有所有菜谱的列表。我的餐厅位置表中有餐厅的所有详细信息。一家餐厅可以有很多菜系,所以我制作了一个餐桌菜系餐厅位置,其中有两列菜系id和餐厅id。我在我的餐厅位置模型中创建了一个属于多个关系

餐厅选址模型

公共功能菜系 { return$this->belongTomanyCushine::class,‘美食餐厅位置’、‘餐厅id’、‘美食id’; } 我有一个表格,里面应该加上餐馆的所有细节和菜肴。现在我正在添加餐厅的所有细节。现在的问题是,我如何将菜系插入美食餐厅位置

控制器

$rest=新餐厅位置; $rest->name=$request->input'name'; $rest->description=$request->input'desc'; $rest->save; $CURINCE=新美食\餐厅\位置 $cuisine_list=$request->输入'cuisines'; foreach$courine\u作为$courine\u列表列出{ $courine->name=$courine\u列表; } 您可以使用sync和attach方法:

$rest->cuisines->附加[$cuisineIds] 其中,CuisineId是要关联的菜系的ID列表。 “同步”和“附加”之间的区别在于,“同步”将删除您传递的id数组中不存在的所有id。

尝试同步方法:

$h = [];
if (isset($input["cuisine_id"])) {
    $h = $input["cuisine_id"];
}
$restaurant_location->cuisines()->sync($h);

可能重复:我有一个烹饪id列表,我想将其与餐厅id一起插入。我使用$rest->cuisines->attach['cuisine\u id'=>$cuisine\u id];这将导致错误id、位置id、0、1值id、30、1、2。找不到列。您能告诉我如何解决这个问题吗?您应该直接将ID作为普通数组插入,而不是键值数组,例如:$cuisineIds=[1,2,3]它仍在添加列0。找不到列:1054“字段列表”中的未知列“0”SQL:插入到美食餐厅位置美食餐厅id,餐厅id,0值0,31,1。在附加并将结果发布到此处之前,是否可以转储$courine\u id数组?如果您只想附加ID为1和2的菜肴,那么数组应该类似于[1,2]