【问题标题】:How can I save data json in database using cast on the laravel?如何在 laravel 上使用 cast 将数据 json 保存在数据库中?
【发布时间】:2018-08-05 09:42:43
【问题描述】:

我使用 Laravel 5.6。

我的模型是这样的:

class Product extends CachedModel {
    protected  $fillable = ['...','photo_list',];

    protected $casts = [
        'photo_list' => 'array'
    ];

    public function scopeOfUpdate($query, $photoList) {
        // echo '<pre>'; print_r($photoList); echo '</pre>'; die();
        return $query->where('id', 1)->update(['photo_list' => $photoList]);
    }
}

结果:

echo '<pre>';
print_r($photoList);
echo '</pre>';
die();

是这样的:

Array
(
    [id] => 1
    [name] => tQQ8lGsIxHmfqH8HVGWz9cjwFFNvgEXgaUPnOsNO.png
)

如果代码执行,会出现如下错误:

数组到字符串的转换(SQL:更新products设置photo_list= 1, ....

我遵循此文档:https://laravel.com/docs/5.6/eloquent-mutators#array-and-json-casting 将 json 数据保存到数据库。但似乎它不起作用。

我该如何解决这个问题?

【问题讨论】:

    标签: arrays json laravel model-view-controller laravel-5.6


    【解决方案1】:

    查询范围并不意味着更新记录。

    改为在您的控制器中尝试这样的操作:

    $product = Product::find(1);
    
    $product->photo_list = [1, 2, 3];
    
    $product->save();
    

    【讨论】:

      猜你喜欢
      • 2021-09-22
      • 1970-01-01
      • 2016-12-13
      • 2021-10-16
      • 2021-11-06
      • 1970-01-01
      • 2020-01-02
      • 2011-08-03
      • 2021-02-22
      相关资源
      最近更新 更多