如何直接将JSON数据作为对象访问

时间:2019-03-28 12:14:29

标签: laravel laravel-5 eloquent

我有一张表,其中一列的数据类型为“ json”。该列称为payment_data,其中有一个JSON对象:

{"success":true,"status":0,"resposta":"OK","referencia":"44304425","entidade":"5555"}

我找到了一个在线示例,可以使用以下示例直接在Laravel中调用:

{{ $order['payment_data->entidade']}}

但是它不起作用,所以我猜这是不对的。是否可以使用帮助程序直接获取信息?

3 个答案:

答案 0 :(得分:1)

您必须在模型中覆盖强制转换变量:

protected $casts = [
 'payment_data' => 'object'
 ];

然后您可以像这样使用

{{ $order->payment_data->entidade }}

答案 1 :(得分:0)

您可以在模型上使用attribute casting,这将允许您以数组形式访问JSON数据。

例如,您可以将以下内容添加到模型类中:

protected $casts = [
    'payment_data' => 'array',
];

然后,您应该能够访问JSON值内的值,例如:$order->payment_data['entidade']

答案 2 :(得分:0)

尝试:

$order = new Order::find( 1 );

$json_data = json_decode( $order->payment_data );

echo $json_data->entidade;