#laravel #laravel-blade
#laravel #laravel-blade
Вопрос:
У меня есть следующая структура данных:
[
{
"id": 1,
"customer_id": "11",
"customer_name": "Vic",
"cheque_withdraw": {
"id": 2,
"request_date", "2019-03-30"
}
}
]
Я получил эти данные из нескольких таблиц с помощью следующего кода;
$paginator = Cheque::with(['chequeWithdraw' => function($query){
$query->where('withdraw_status' , 'withdrawn');
}])
->paginate(5);
Как мне получить доступ к вложенному объекту json request_date без необходимости преобразования моей коллекции в ассоциативный массив? Причина, по которой я не хочу преобразовывать коллекцию в ассоциативный массив, заключается в том, что у меня возникают проблемы с разбиением на страницы данных, которые были декодированы в json.
В настоящее время я пытаюсь получить доступ к request_date в моем блейд-файле таким образом;
@foreach($paginator as $cheque)
{{ $cheque->cheque_withdraw->request_date }}
@endforeach
Однако я получаю следующую ошибку;
Trying to get property 'request_date' of non-object
Комментарии:
1. Если вы попытаетесь
print_r($cheque);
иdie();
внутри вашего foreach, что вы получите?2. @pr1nc3 Я получаю объекты двух моделей, которые я использовал. Модель проверки и модель ChequeWithdraw. Результат слишком длинный, иначе я бы вставил его сюда, чтобы вы могли взглянуть
3. Тогда не могли бы вы показать мне код, которым вы возвращаете данные в представление?
Ответ №1:
На самом деле у вас есть chequeWithdraw
и нет cheque_withdraw
@foreach($paginator as $cheque)
{{ $cheque->chequeWithdraw->request_date ?? 'NA'}}
@endforeach
Возможно, вы пытаетесь преобразовать коллекцию laravel в json или массив. преобразование laravel camel case
в snake case
. Итак, вы получали это для json, а не для шаблона laravel.
Комментарии:
1. Спасибо за ответ. Это работает замечательно. Пожалуйста, объясните мне, почему объектом является chequeWithdraw, а не cheque_withdraw, как в json?
2. @gerry: возможно, вы пытаетесь преобразовать коллекцию laravel в json или массив. преобразование laravel
camel case
вsnake case
. Итак, вы получали это для json, а не для шаблона laravel.