Почему я получаю «неопределенную переменную» в представлении Laravel?

когда я пытаюсь получить данные из таблицы, где у меня есть категории: Неопределенная переменная: ошибка категории.

$ posts переменная работает нормально.

@if(count($posts)) @foreach($posts as $post) @if($post->category) <div class="{{ $post->category->name }} isotope-item"> <img src="../img/showcase/1.jpg" alt=""> <div class="disp-post"> <span class="icon"></span> <p class="time">{{ $post->updated_at }}</p> <h4>{{ Str::words($post->title, 3) }}</h4> <p>{{ Str::words($post->body, 60) }}</p> <p class="link">{{ HTML::linkRoute('posts.show', 'Read more', array($post->id)) }}</p> </div> </div> @endif @endforeach @endif 

но когда я попробую $ category:

 @if(count($category)) @foreach($category as $c) <li><a href="#" data-filter="{{ $c->name }}">Networking</a></li> @endforeach @endif 

Я получаю сообщение об ошибке.

Что я делаю не так?

Это из моего PostsController

 public function showcase() { $category = Category::all(); $posts = Post::with('category')->orderBy('updated_at')->get(); return View::make('posts.showcase', compact('posts')); } 

Вы не передаете переменную $category в свой вид, вы просто передаете $posts .

Измените свою линию:

 return View::make('posts.showcase', compact('posts')); 

Быть:

 return View::make('posts.showcase', compact('posts', 'category')); 

И ваша переменная $category будет доступна.