显示通过类别链接Laravel 5.4

时间:2017-03-27 21:34:06

标签: php sql laravel routes

我有4个按钮的侧面导航:

计算机
笔记本电脑
移动
平板电脑

我想要的是一种路由我的观点的方式,以便我可以获得仅属于该类别的帖子。

CategoryContoller

  public function show(Category $category)
    {
      $posts = Category::findOrFail($category)->posts()->get();
    return view('pages.computer',compact('category'))->with('posts',$posts);

路线

Route::get('{category}',[
             'uses' => 'CatController@showComputer',
             'as' => 'pages.computer']);

如果我将mywebsite / Computer放入计算机类别的所有帖子,那么就这样了,如果我使用mywebsite / Mobile,那就相同了。
因此查询正在运行。
现在我怎么能:

{{route('')}}

我的观点所以我可以通过sidenav链接显示每个类别。

3 个答案:

答案 0 :(得分:1)

您可以在视图中创建@foreach循环来渲染所有类别,例如:

<ul>

  @foreach($categories as $category)

    <li><a href="categories/{{ $category->name }}">{{ $category->name }}</a></li>

  @endforeach

</ul>

编辑:

要在视图中的链接中获取所有类别,您必须先在控制器中获取它们,然后将其传递给观点:

首先你必须创建一条路线:

Route::get('/',[
             'uses' => 'CatController@index',
             'as' => 'pages.index']);

现有的索引方法:

public function index {
   $categories = Category::all();
   return view('pages.index',compact('categories'));
}

答案 1 :(得分:1)

您可以尝试类似的东西。

<a href="{{ route('pages.computer', ['category' => $category->name]) }}">
    {{ $category->name }}
</a>

只需将您在网址中使用的任何列替换为->name

答案 2 :(得分:0)

如果您的路线是这样的

Route::get('/categories/{slug}', 'CategoryController@menuCats');

您可以在以下刀片服务器模板中使用此路由的URL。

<span><a href="{{url('categories/'.$category->slug)}}"></a></span>