如何在 laravel 上使用 cast 将数据 json 保存到数据库中?
How can I save data json in database using cast on the laravel?
我用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
)
如果执行代码,会出现如下错误:
Array to string conversion (SQL: update products
set photo_list
=
1, ....
我遵循此文档:https://laravel.com/docs/5.6/eloquent-mutators#array-and-json-casting 将 json 数据保存到数据库。不过好像不行。
我该如何解决这个问题?
查询范围不是更新记录的意思。
改为在您的控制器中这样尝试:
$product = Product::find(1);
$product->photo_list = [1, 2, 3];
$product->save();
我用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
)
如果执行代码,会出现如下错误:
Array to string conversion (SQL: update
products
setphoto_list
= 1, ....
我遵循此文档:https://laravel.com/docs/5.6/eloquent-mutators#array-and-json-casting 将 json 数据保存到数据库。不过好像不行。
我该如何解决这个问题?
查询范围不是更新记录的意思。
改为在您的控制器中这样尝试:
$product = Product::find(1);
$product->photo_list = [1, 2, 3];
$product->save();