Вывод массива laravel

Мне нужно выводить массив категорий. Вот что у меня в IndexController

public function __invoke()
    {
        $servers = Server::take(3)->get();
        $categories = Category::all();
        return view('main.index', compact('servers','categories'));
    }

Вот что у моей модели

public function categories()
    {
        return $this->belongsToMany(Category::class,'server_categories', 'server_id', 'category_id');
    }

У меня в БД таблицаserverстрокаcategory_id подкреплена к другой таблице server_categories Вот что у меня в migrate server

            $table->unsignedBigInteger('category_id')->nullable();

            $table->index('category_id','server_category_idx');
            $table->foreign('category_id','server_category_fk')->on('categories')->references('id');

Вот что у меня в migrate server_categories

            $table->unsignedBigInteger('server_id');
            $table->unsignedBigInteger('category_id');

            $table->index('server_id','server_category_server_idx');
            $table->index('category_id','server_category_category_idx');

            $table->foreign('server_id','server_category_server_fk')->on('servers')->references('id');
            $table->foreign('category_id','server_category_category_fk')->on('categories')->references('id');

Вот что у меня в index.blade.php

@foreach($servers as $server)

@dd($server->categories['title'])

@endforeach

И выводится следующая ошибка Undefined index: title

Я не понимаю в чем проблема, ведь раньше другие массивы я выводил именно так

Вот что у меня выводится когда я пишу

@dd($server->categories)

Вывод массива

Если я что-то забыл вам показать, напиши. Спасибо за помощь


Ответы (1 шт):

Автор решения: Anton Mironov

У вас отношение многие-ко-многим, поэтому каждому серверу принадлежит несколько категорий. Для их вывода создайте вложенный цикл:

@foreach($servers as $server)
    @foreach($server->categories as $category)
        {{$category->title}}
    @endforeach
@endforeach
→ Ссылка