【问题标题】:Return a new version of Eloquent for JSON model after deleting a relationship删除关系后返回新版本的 Eloquent for JSON 模型
【发布时间】:2015-12-13 15:51:52
【问题描述】:

我有一种方法可以从 Blog 模型中删除 Photo 模型。 (Blog hasMany Photo)。我通过 AJAX 做到这一点。我的方法是这样的:

public function removeImage(RemoveImageRequest $request)
    {
        $parent = $this->model->findOrFail($request->parent);

        // Check if a passed image belongs to the passed post
        if(in_array($request->image, $parent->photos->lists('id')->all())) {
            $this->repository->detachPhoto($parent, $request->image);
        }

        return $this->transformer->transform($parent);
    }

Transformer 只是一个以更易读的方式重新格式化 JSON 数据的类,并添加了一些在前端使用的附加属性。

但是当我返回那个$parent 对象时,它仍然有最近删除的照片。我应该再次获取整个模型还是有办法返回一个新的copy?

【问题讨论】:

    标签: json laravel laravel-5 eloquent laravel-5.1


    【解决方案1】:

    您可以通过调用来重新加载父母的照片关系:

    $parent->load('photos');
    

    之后,该关系将保存数据库中当前的内容 - 没有您刚刚删除的照片的列表。

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 2021-08-22
      • 2021-11-17
      • 2019-09-20
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      相关资源
      最近更新 更多