我的表中有以下数据
表:
id |name | option_data
1 |Joe |{"gender":"Male","cnic":"1234567","dob":"2016-03-14"}
2 |Doe |{"gender":"Male","cnic":"9999","dob":"2016-03-14"}
如何以正确的json_encode格式获取数据。
例如,如果我写
echo json_encode($app->auth->users);
我的option_data输出
option_data":"{'"gender'":'"Male'",'"cnic'":'"61101-6859110-3'",'"dob'":'"2016-03-14'"}"
我的数据库列类型是Text
。如果我使用条带斜杠删除所有'
,那么仍然数据不是有效的JSON,因为它被包裹在"
双qoutes中。
问题
如何使用所有其他库以正确的json_encode格式获取数据。
您只需在模型中使用$casts变量,它就会自动转换为json并反转为数组。
protected $casts = [
"option_data" => "array"
];
试着在你的模型中使用accesor,到你的数据模型
public function getOptionDataAttribute($value)
{
return json_decode($value);
}
并在您的控制器中返回:
return Model::all(); //What you need to retrieve
输出必须是:
{
id: 1
name: name,
option_data: {"gender":"Male","cnic":"1234567","dob":"2016-03-14"}
}