Как получить прямой доступ к данным JSON как к объекту - PullRequest
0 голосов
/ 28 марта 2019

У меня есть таблица, в которой один из столбцов имеет тип данных "json".Столбец называется payment_data, и внутри него у меня есть объект JSON:

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

В Интернете я нашел пример, который можно вызвать напрямую в Laravel, используя этот пример:

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

Но это не работает, поэтому я думаю, что это неправильно.Есть ли помощник для получения информации напрямую?

Ответы [ 3 ]

1 голос
/ 28 марта 2019

Вы должны переопределить переменную приведения в вашей модели:

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

Тогда вы можете использовать так:

{{ $order->payment_data->entidade }}
0 голосов
/ 28 марта 2019

попробовать:

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

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

echo $json_data->entidade;
0 голосов
/ 28 марта 2019

Вы можете использовать приведение атрибутов в вашей модели, что позволит вам получить доступ к данным JSON в виде массива.

Например, вы можете добавить в свой класс модели следующее:

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

Тогда вы сможете получить доступ к значениям внутри значения JSON следующим образом: $order->payment_data['entidade'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...