dd ($ var) работает и отображается, но {{$var}} выдает неопределенный объект Laravel5.8

#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 . таким образом, если вы включили в цикл, он сначала сбросит значение для и прервет продолжение работы приложения.