Laravel:如何将json格式数据存储在数据库中?
我想从给定的数组中存储一些json格式数据到数据库中。 但我如何使用控制器来存储它。
假设我有json数据,如:
{"id":"bangladesh","divisions":[{"name":"Barisal"},{"name":"Chittagong"},{"name":"Dhaka"},{"name":"Khulna"},{"name":"Rajshahi"},{"name":"Rangpur"},{"name":"Sylhet"}]}
据我所知在控制器中使用json格式就像这样,因为我没有完全意识到它。
public function saveUser(Request $request)
{
$div=new Div();
$user->json = json_encode( array({"Date 1": {
{"id":"bangladesh","divisions":[{"name":"Barisal"},{"name":"Chittagong"},{"name":"Dhaka"},{"name":"Khulna"},{"name":"Rajshahi"},{"name":"Rangpur"},{"name":"Sylhet"}]}
$div->save();
return redirect('getList');
}
我如何将它保存在mySQL中只使用Laravel控制器的Division Division中的部门列表?
您不需要自己将数组数据转换为JSON字符串,请在您的模型上使用Laravel $ casts参数:https://laravel.com/docs/5.2/eloquent-mutators#attribute-casting
你应该在Div模型中做这样的事情:
protected $casts = [
'divisions' => 'array',
];
您可以将模型转换为JSON格式,如$model->toJson();
要么
如果你有一个数组中的数据,你可以使用json_encode(['id' => 1, 'name' => 'User 1']);
Laravel Schema支持JSON字段类型以及https://laravel.com/docs/5.0/schema#adding-columns
您也可以使用text
字段类型来存储JSON数据。