如果我使用DB Seeder插入数据(并检索数据),有人可以帮助我了解如何使用属性转换
这是播种机的一部分
DB::table('events')->insert([
[
'title' => 'prizes',
'description' => serialize([
"text" => "General description..."
]),
'language' => 'en',
'time_start' => null,
'time_end' => null,
'lat' => null,
'lng' => null,
]
]);
这样,我确实已经在数据库中序列化了数据,但是当我这样做时
$events = Event::with('user')->where('child','=',null)->get();
我得到的描述为空
(不必担心用户默认为null)
这是我的活动模型
class Event extends Model
{
protected $table = 'events';
//
public function user()
{
return $this->hasOne('App\User','id');
}
protected $casts = [
'description' => 'array',
];
}
我在这里想念什么?
答案 0 :(得分:1)
根据doc,雄辩的数组转换将数组序列化为JSON:
在处理以序列化JSON存储的列时,数组强制转换类型特别有用
所以您应该这样插入它:
DB::table('events')->insert([[
'title' => 'prizes',
'description' => json_encode(["text" => "General description..."]),
'language' => 'en',
'time_start' => null,
'time_end' => null,
'lat' => null,
'lng' => null,
]]);
请注意,serialize
属于PHP核心,并且不产生JSON。