【问题标题】:Mass update a belongsToMany relationship in a laravel 4 model in a RESTful controller批量更新 RESTful 控制器中 laravel 4 模型中的 belongsToMany 关系
【发布时间】:2013-09-19 22:01:13
【问题描述】:

我有一个选项模型,它使用与其他选项的 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. 如果是这样,我如何更新与新连接的关系?

【问题讨论】:

    标签: php rest laravel laravel-4 eloquent


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 2014-11-23
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 2015-01-15
      相关资源
      最近更新 更多