#laravel #eloquent #laravel-5.8
#laravel #красноречивый #laravel-5.8
Вопрос:
Я получаю данные, которые хочу отобразить, из foreach
цикла, подобного этому
@foreach(auth()->user()->unreadNotifications as $notification)
{{dd($notification->data)}}
{{--{{dd($notification->data['thread']['id'])}}--}}
{{--{{dd($notification->data['thread']['subject'])}}--}}
{{--{{dd($notification->data['user']['name'])}}--}}
@endforeach
Все dd
отображаемые там данные предполагают показывать без каких-либо ошибок, но когда я выполняю цикл, подобный этому.
@foreach(auth()->user()->unreadNotifications as $notification)
<a href="{{ropgpute('thread.show',$notification->data['thread']['id'])}}">
{{$notification->data['user']['name']}} commented on <strong> {{$notification->data['thread']['subject']}}</strong>
</a>
@endforeach
выдает ошибку возврата error:
Undefined index: thread (View: C:UsersMerlijnAppDataRoamingComposerLaravel ProjectsForumresourcesviewslayoutspartialsnavbar.blade.php) (View: C:UsersMerlijnAppDataRoamingComposerLaravel ProjectsForumresourcesviewslayoutspartialsnavbar.blade.php) (View: C:UsersMerlijnAppDataRoamingComposerLaravel ProjectsForumresourcesviewslayoutspartialsnavbar.blade.php)
Обратите внимание, что также user
не определено
Я не понимаю, почему dd
работает нормально и показывает данные, но обычный foreach
цикл, исключающий данные, ничего не показывает и возвращает поток с неопределенным индексом
{{dd($notification->data)}}
вывод
array:2 [▼
"thread" => array:8 [▼
"id" => 1
"subject" => "JSUpdated Updated Updated"
"thread" => "eaeaweaweaewaeawawneaklfnd/waldfwa.fwa"
"type" => "Question Updated"
"created_at" => "2019-03-14 15:34:28"
"updated_at" => "2019-03-14 15:34:38"
"user_id" => 1
"solution" => 2
]
"user" => array:6 [▼
"id" => 1
"name" => "johndoe"
"email" => "johndoe@example.com"
"email_verified_at" => null
"created_at" => "2019-03-14 15:34:15"
"updated_at" => "2019-03-14 15:34:15"
]
]
Комментарии:
1. Не могли бы вы опубликовать
dd
of$notification->data
?2. Проблема с
dd
заключается в том, что это приведет к завершению работы приложения, поэтому, если проблема на второй итерацииforeach
, вы не сможете ее увидеть. Попробуйте изменить наvar_dump($notification->data)
и посмотрите, все ли$notification
имеют запрошенныйfields
3. Вы всегда будете возвращать этот массив из 2 или у вас может быть больше?
4. да, только этот массив из 2
5. у меня та же ошибка, она нормально работает на одной странице, но при загрузке на другой выдает ошибку
Ответ №1:
Я замечаю, что значение $notification->data['thread']
равно "eaeaweaweaewaeawawneaklfnd/waldfwa.fwa"
. Это строка .Затем в вашем коде вы пытаетесь $notification->data['thread']['id']
. Это означает, что вы пытаетесь получить некоторое значение массива, но на самом деле ваши данные являются строковыми.
Комментарии:
1. Итак, как бы вы тогда их извлекли в этом случае?
Ответ №2:
dd => dump and die
. таким образом, если вы включили в цикл, он сначала сбросит значение для и прервет продолжение работы приложения.