Почему он показывает ошибку «заголовок» ключа неопределенного массива?

У меня есть запрос, который возвращает конкретный пост:

  $post = Post::where('post_code', $post['post_code'])->first();

И возвращается вот так:

^ App\Models\Post {#1351 ▼
  #connection: "mysql"
  #table: "hotels"
  ...
  #attributes: array:6 [▼
    "id" => 1
    "post_code" => "AB1"
    "comments" => "[{"key": "1DfsGlyLv3yK1", "layout": "comment", "attributes": {"title": "title 1", "message": "comment 1"}}, {"key": lfhK5Nbwc2cPLKY", "layout": "note", "attributes": {"title": "title 2", "message": "comment 2"}}] ◀"
  ]

И я хочу отображать каждый комментарий с его конкретным заголовком и комментарием, как показано ниже:

[
                    'name' => "post_comments",
                    'data' => [
                        'comments' =>
                        collect($post['comments'])->map(function ($comment) {
                            return [
                                'title' => $comment['title'],
                                'message' => $comment['message'],
                            ];
                        }),
                    ]
                ],

Однако, делая это, он показывает ошибку:

Undefined array key "title"

Знаете ли вы, в чем может быть проблема, поскольку ключ заголовка существует? Спасибо

Извините, это была опечатка. Я обновил вопрос.

Bernard 05.05.2022 17:39

Если я правильно понимаю, заголовок и сообщение являются внутренними атрибутами, которые находятся внутри комментариев, поэтому вы должны следовать этому порядку, чтобы получить заголовок. комментарии->атрибуты->заголовок/сообщение

Juranir Santos 05.05.2022 18:01

Спасибо, но похоже, что он показывает «Попытка прочитать свойство« заголовок »в массиве». С return [ 'title' => $comment->title, 'message' => $comment->message, ];.

Bernard 05.05.2022 18:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я вижу, вы только что пропустили один уровень в объекте комментарий:

[
                    'name' => "post_comments",
                    'data' => [
                        'comments' =>
                        collect($post['comments'])->map(function ($comment) {
                            return [
                                'title' => $comment['attributes']['title'],
                                'message' => $comment['attributes']['message'],
                            ];
                        }),
                    ]
                ],

Другие вопросы по теме