在 mysql 数据库 laravel 9 中将数组存储和更新为 json
store and update an array as json in mysql database laravel 9
我有要存储在数据库中的值,我已将类型声明为 json 并将其转换为数组:
protected $casts = [
'favourites' => 'array'
];
但是,我不确定如何添加、更新和读取里面的值,有什么想法吗?
控制器功能:
public function addtofav()
{
$id = request()->get('id');
$user = auth()->user();
json_decode($user->favourites,true);
array_push($user->favourites,$id);
dump('hello');
json_encode($user->favourites);
$user->save();
return response(['id'=> $id],200);
}
实际上你应该使用多对多,但如果你想使用数组,你不需要编码或解码。
public function addtofav()
{
$id = request()->get('id');
$user = auth()->user();
$favourites = $user->favourites;
array_push($favourites,$id);
$user->favourites = $favourites
$user->save();
return response(['id'=> $id],200);
}
adding the array cast to that attribute will automatically deserialize
the attribute to a PHP array when you access it on your Eloquent
model.
因此,在任何更新或创建之前无需对您的值进行任何编码或解码,只需将其作为数组保存,Eloquent 会处理它,因为您将 $cast 数组作为以下:
protected $casts = [
'options' => 'array',
];
我有要存储在数据库中的值,我已将类型声明为 json 并将其转换为数组:
protected $casts = [
'favourites' => 'array'
];
但是,我不确定如何添加、更新和读取里面的值,有什么想法吗? 控制器功能:
public function addtofav()
{
$id = request()->get('id');
$user = auth()->user();
json_decode($user->favourites,true);
array_push($user->favourites,$id);
dump('hello');
json_encode($user->favourites);
$user->save();
return response(['id'=> $id],200);
}
实际上你应该使用多对多,但如果你想使用数组,你不需要编码或解码。
public function addtofav()
{
$id = request()->get('id');
$user = auth()->user();
$favourites = $user->favourites;
array_push($favourites,$id);
$user->favourites = $favourites
$user->save();
return response(['id'=> $id],200);
}
adding the array cast to that attribute will automatically deserialize the attribute to a PHP array when you access it on your Eloquent model.
因此,在任何更新或创建之前无需对您的值进行任何编码或解码,只需将其作为数组保存,Eloquent 会处理它,因为您将 $cast 数组作为以下:
protected $casts = [
'options' => 'array',
];