Php 拉雷维尔,类别关系职位
所以我不知道如何在我的foreach中使用带有类别的帖子。 控制器Php 拉雷维尔,类别关系职位,php,laravel,Php,Laravel,所以我不知道如何在我的foreach中使用带有类别的帖子。 控制器 $Categories = \App\Category::Where('displayed',1)->get(); foreach ($Categories as $Category){ $CategoryPosts[]=$Category->load('posts'); } dd($CategoryPosts); ret
$Categories = \App\Category::Where('displayed',1)->get();
foreach ($Categories as $Category){
$CategoryPosts[]=$Category->load('posts');
}
dd($CategoryPosts);
return view('welcome', compact($CategoryPosts));
页面
@forelse($CategoryPosts作为$post)
图像}}“>
{{$post->created_at}}
{{{$post->short_desc}
@空的
没有时间
没有帖子
@endforelse
我有2个类别和3个职位的权利。
.您可以从另一个方向执行此操作,仅获取帖子:
$posts = Post::whereHas('category', function ($query) {
$query->where('displayed', 1);
})->get();
假设你有一个相反的关系设置帖子->类别。这意味着获取所有帖子,其中显示的类别等于1
根据需要调整关系名称
whereHas
非常简单的答案和更简洁的$posts=\App\Post::whereHas('category',function(Builder$query){$query->where('displated',1)});返回视图('welcome',compact($posts));语法错误,意外“}”…找不到error@Maksym你应该复制这里的内容,而不是键入它,因为你缺少一个分号;)是的,但是现在所有的帖子都像是在一个集合中。如果我需要做一个简单的分类,比如体育或时尚,而不是一个集合中的所有帖子,我想我会使用@foreach(CategoryPosts[0]->发布为post),但它不起作用
$posts = Post::whereHas('category', function ($query) {
$query->where('displayed', 1);
})->get();