可以动态启用 / 停用修改器吗?
在填充数据的时候,能不能暂时关闭修改器?
当设置$model->url
的值时,会调用访问器来将url转换为json格式,
而下面执行insert时,由于需要$works->toArray()
,所以又调用了访问器来将json转换为数组。
导致插入数据库时类型报错
$works = factory(\App\Models\Work::class)->times(50)->make()->each(function ($model,$index)use($user_ids,$video_urls,$image_urls,$category_ids){
$model->user_id = array_random($user_ids);
$model->category_id = array_random($category_ids);
$model->url = ['original' => array_random($video_urls)];
$model->cover = array_random($image_urls);
});
\App\Models\Work::insert($works->toArray());
然后只有自己再次转换一次?:
$works = factory(\App\Models\Work::class)->times(50)->make()->each(function ($model,$index)use($user_ids,$video_urls,$image_urls,$category_ids){
$model->user_id = array_random($user_ids);
$model->category_id = array_random($category_ids);
$model->url = ['original' => array_random($video_urls)];
$model->cover = array_random($image_urls);
});
$works = $works->toArray();
foreach ($works as &$work){
$work['url'] = json_encode($work['url']);
}
\App\Models\Work::insert($works);
能不能手动关闭或者开启修改器呀?
推荐文章: