我用的是拉威尔10号.
我正在以以下方式利用JSON专栏的强制转换:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Item extends Model
{
protected $casts = [
'meta' => 'collection', // here
];
}
当try 直接更新集合中的值时,例如:
$model->meta->put('test', 100);
$model->save();
什么也没发生.
当我按原样分配变量时,它可以正常工作.
$model->meta = ['test' => 100];
$model->save();
但是,如果我只需要更新/添加单个元素怎么办?
我发现了以下解决方法,但这是预期的行为吗?
$meta = $model->meta;
$meta->put('test', 100);
$model->meta = $meta;
$model->save();
似乎只有直接赋值在这种情况下有效,而且CAST集合似乎不支持其任何写入功能.