2

我有一个选项模型,它使用与其他选项的 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
  }
}
  1. 存在关系时是否可以使用批量分配更新模型?

  2. 如果是这样,我如何更新与新连接的关系?

4

1 回答 1

0

我的特定问题的答案有两个。

#1我试图将一个数组值保存到一个字段中,错误提醒我注意这一事实。在保存到字段之前需要将其转换为字符串。一个简单的 implode() 为我解决了这个问题。

#2我还假设 laravel 会发现我有一个需要同时修改的关系并工作,这对我来说很神奇。错误的。

我保存关系更改的解决方案涉及模型的“附加”和“分离”方法,这非常棒。

于 2013-09-20T18:45:07.413 回答