我有一个选项模型,它使用belongsToMany与其他选项的关系。
我在RESTful场景中设置了控制器。当我对选项模型进行更新时,我正在通过使用下面的代码进行批量分配来更新模型:
public function update($id)
{
$data = Input::json()->all();
$option = Option::where('id','=',$id)->with('optionRelationValue')->first();
$option->fill($data['option']);
$option->save();
return json_encode(array('option' => $option->toArray()));
}
在我使用“optionRelationValue”的值数组更新模型之前,这是有效的,因为这是驱动关系的属性。
我现在收到以下错误:
{
"error": {
"type": "ErrorException",
"message": "Array to string conversion",
"file": "/[REMOVED]/vendor/laravel/framework/src/Illuminate/Database/Connection.php",
"line": 352
}
}
当存在关系时,是否可以使用质量分配更新模型?
如果是这样,我如何更新与新连接的关系?
答案 0 :(得分:0)
我的特定问题的答案有两个。
#1 我试图将数组值保存到字段中,错误提醒我这个事实。在保存到字段之前,需要将其转换为字符串。一个简单的implode()为我解决了这个问题。
#2 我还假设laravel会发现我有一段关系可以同时修改并且对我有用。错了。
我保存关系更改的解决方案涉及模型的“附加”和“分离”方法,这些方法很棒。