我目前试图使3个表之间的关系。
post
id
name
category
id
name
post_category
id
post_id
category_id
数据库
post | 1 | post1 | | 2 | post2 | | 3 | post3 | category | 1 | cat1 | | 2 | cat2 | | 3 | cat3 | post_category | 1 | 1 | 1 | | 2 | 2 | 1 | | 3 | 3 | 2 | | 3 | 2 | 2 | | 3 | 1 | 3 |
public function getCategory() { return $this->belongsToMany(Category::class, 'post_category'); }
$data = Post::with('getCategory')->get();
$categoryId = [1,2]; $data = Post::with('getCategory')->whereHas('category', function ($query) use ($categoryId) { $query->whereIn('id', $categoryId); })->orderBy('id','DESC')->get();
显然一切都很好!
一个建议是在belongToMany
方法中再添加两个参数,如:
public function getCategory()
{
return $this->belongsToMany(Category::class, 'post_category', 'post_id', 'category_id');
}
https://laravel.com/api/7.x/Illuminate/Database/Eloquent/Concerns/HasRelationships.html#method_belongsToMany
您应该将getCategory()
函数重命名为simplycategory()
。这使得关系名称更加直观,可能会解决您的问题。
然后,您应该能够调用其中有('类别',...)
。
如果仍然不起作用,只需链接一个-
这是我在这里的第一篇帖子,而且我是一个初学者,所以请耐心听我说。 我想完成的是创建一个AJAX函数,该函数将以复选框的形式列出所有可用类别,用户可以从中选择。选择并点击“应用”后,我想显示分配给所选类别的帖子中所有标签的列表(也以复选框的形式)。然后用户可以从可用的标签中进行选择,然后在点击最后的“应用”按钮后,将显示相应的帖子。 类似于TED. com的“你感兴趣的是什么?”但是在AJAX中。所
我正在使用高级自定义字段插件,我试图通过分类字段过滤一些自定义帖子,修改WP_Query: 如果我尝试通过文本字段过滤一切正常,WP_Query被修改。但是当字段是一个分类法字段时,我不知道应该传递什么参数,因为它是一个对象。我尝试了分类法名称和分类法ID,但不起作用。 是否可以通过分类字段进行筛选?我应该传递的什么参数?谢谢! 更新-结构: 自定义帖子:“递归操作系统” 自定义分类Slug:'r
我想通过作为字符串的属性名筛选类的集合。假设我有一个名为Person的类,我有它的一个集合,或者是IEnumerable或者是List,我想过滤这个集合,但是我不知道确切的过滤器,我的意思是我不能使用: 让我举一个例子。
我正在使用OctoberCMS制作一个简单的画廊,基于Laravel和Twig。 如何按类别筛选记录? 我现在是这样做的,但我认为这不是一个好的解决方案: 我过滤了html,但是类别之外的所有项目的完整记录仍然存在,导致额外的分页和空白页。 数据库 > “images”表包含图像名称及其标记的类别。 图像列表 URL参数为/gallery/:category?/:页 访问像/gallery/nat
我有模型用户,类别和邮政。帖子属于很多用户,很多类目。用户和类别不相关。我创建了一个自定义数据透视表,其中存储user_id和category_id,以及该表的模型类别块。我如何才能获得用户没有屏蔽的所有帖子?
我正在使用Elementor主题生成器创建一个自定义归档页面,该页面将应用于所有类别页面。传统的“归档”小部件显示所有帖子,而帖子小部件需要一个术语。 如何使用元素自定义查询过滤器在相应的存档页面上动态显示帖子?https://developers.elementor.com/custom-query-filter/