在单独的页面上显示每个类别 - laravel

时间:2016-08-30 22:41:43

标签: php laravel

对于博客网站,我有所有的帖子&现在我在页面上显示的类别列表我需要在其自己的单独页面上显示每个类别的帖子。

我们说我有一个类别是Javascript'我只想在页面上显示带有javascript类别的帖子。

执行此操作的正确代码是什么?这是我目前所拥有的一个例子。

categoriesController.php

public function show($id)
{
$post->withCategories($Categories)->$id->($id as **javascript)**
}

javascript.blade.php(相应观点)

<tbody>
@foreach ($categories as $category->$id>**javascript**)
<tr>
<th>{{ $category->id }}</th>
<td>{{ $category->name }}</td>
</tr>
@endforeach
</tbody>
</table>
</div> <!-- end of .col

1 个答案:

答案 0 :(得分:1)

如果您已正确设置了laravel模型中的关系,则可以使用whereHas

$posts = Post::whereHas('categories', function ($query) {
    $query->where('name', '=', 'javascript');
})->get();

但是,我会亲自翻转订单并先加载Category,然后按名称查询:

$category = Category::with('posts')->where('name', '=', 'javascript')->get();

然后在视图中:

{{ $category->name }}<br>
@foreach(category->posts as $post)
    {{ $post->title }}<br>
@endforeach