В сводной таблице я сохранил post_id и category_id, как я могу получить название категории сообщений из сводной таблицы? - PullRequest
3 голосов
/ 05 января 2020

Это моя модель Ctegory


    namespace App;

    use Illuminate\Database\Eloquent\Model;

    class Category extends Model
    {
      public function posts()
      {
          return $this->belongsToMany('App\Post')->withTimestamps();
      }
    }

вот моя модель сообщения


    namespace App;

    use Illuminate\Database\Eloquent\Model;

    class Post extends Model
    {
      public function categories()
      {
          return $this->belongsToMany('App\Category')->withTimestamps();
      }
      public function tags()
        {
            return $this->belongsToMany('App\Tag')->withTimestamps();
        }
      public function user()
       {
           return $this->belongsTo('App\User');
       }
    }

это моя индексная функция


    public function index()
        {
          $posts=Post::latest()->get();
          return view('admin.post.index',compact('posts'));
        }

это моя страница просмотра

      @foreach($posts as $post)
         <tr>
               <td>{{ $post->id }}</td>
               <td>{{ str_limit($post->title,'10') }}</td>
               <td>{{$post->categories->pivot->name}}</td>
         </tr>
       @endforeach

laravel выдает мне эту ошибку, когда я хочу отобразить имя моей категории ..

ErrorException (E_ERROR) Свойство [сводная таблица] не существует в этом экземпляре коллекции , (Представление: C: \ xampp \ htdocs \ Advanced_Blog_System \ resources \ views \ admin \ post \ index.blade. php)

мне просто нужно посмотреть название категории, как я могу решить эту проблему ???

Ответы [ 2 ]

2 голосов
/ 05 января 2020

Сообщение и Категория имеют много-много связей, поэтому вам нужен другой foreach для категорий;

@foreach($post->categories as $category)
    {{$category->name}}
@endforeach
1 голос
/ 06 января 2020

Попробуй

<td>{{$post->categories->name}}</td>

Попробуй не уверен, сработает ли ты !!

...