Laravel:按可点击的类别过滤线程

时间:2018-01-25 23:21:35

标签: laravel categories forum

我创建了一个页面,左侧是类别列表,右侧是线程。使用CRUD在不同的控制器中动态显示类别列表作为线程。一切正常。

ForumThread控制器索引方法:

public function index()
{
    $threads = ForumThread::orderBy('id', 'desc')->paginate(10);
    $categories = ForumCategory::with('threads')->get();

    return view('forum.thread.index', compact('threads', 'categories'));
}

线程属于课程类别,视图类别部分如下所示:

<div class="col-md-3">
  <ul class="list-group">
    <a href="{{route('forum.index')}}" class="list-group-item">
      <span class="badge">{{$threads->count()}}</span>
      All categories
    </a>

    @foreach ($categories as $category)

    <a href="#" class="list-group-item">
      <span class="badge">{{$category->threads->count()}}</span>
      {{$category->name}}
    </a>

    @endforeach
  </ul>
</div>

我想要的是设置href链接以转到属于所单击的特定类别的线程。

我认为我需要一种新方法(我认为因为我不知道如何在索引方法中实现这一点)所以我做了一个:

public function showThreads($id)
{
    $showThreads = ForumCategory::with('threads')->findOrFail($id);

    return view('forum.thread.index', compact('showThreads'));
}

路线:

Route::get('/forum/category/{id}', 'ForumThreadController@showThreads')->name('category.threads');

当我设置id例如&#39; / forum / category / 3&#39;并尝试函数dd(showThreads-&gt; thread);它向我展示了一个属于该类别id的线程数组。

但是现在我不知道如何在已经适用于类别列表的foreach循环中实现这一点。我试过这样:

<div class="col-md-3">
  <ul class="list-group">
    <a href="{{route('forum.index')}}" class="list-group-item">
      <span class="badge">{{$threads->count()}}</span>
      All categories
    </a>

    @foreach ($categories as $category)

    <a href="{{ route('category.threads', $showThreads->id) }}" class="list-group-item">
      <span class="badge">{{$category->threads->count()}}</span>
      {{$category->name}}
    </a>

    @endforeach
  </ul>
</div>

但它显示错误:未定义变量:线程

任何帮助?

0 个答案:

没有答案