gpt4 book ai didi

php - Laravel 5.6 - 如何从非关系表中获取发布数据?

转载 作者:行者123 更新时间:2023-11-29 17:23:09 25 4
gpt4 key购买 nike

我使用的是 Laravel 5.6。我的 table 下面

表格:类别

+----+-----------+----------+
| id | name | slug |
+----+-----------+----------+
| 1 | Cat1 | cat1 |
| 2 | Cat2 | cat2 |
| 3 | Cat3 | cat3 |
+----+-----------+----------+

表格:帖子

+----+----------+------------+----------+
| id | user_id | name | photo |
+----+----------+------------+----------+
| 1 | 1 | Post1 | img1.jpg |
| 2 | 2 | Post2 | img2.jpg |
| 3 | 1 | Post3 | img3.jpg |
| 4 | 1 | Post4 | img4.jpg |
+----+----------+------------+----------+

表:post_categories

+----+----------+--------------+
| id | post_id | category_id |
+----+----------+--------------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 5 | 2 | 3 |
| 6 | 3 | 3 |
| 7 | 4 | 2 |
+----+----------+--------------+

上面我已经发布了我的 3 个表。这是post_categoriesposts 的表关系和categories table 。我想明智地显示所有帖子类别。下面看我的输出:

Cat1
Post1
Post2
Cat2
Post1
Post4
Cat3
Post1
Post2
Post3

网址:

http://chhayalsing.com/blog

http://chhayalsing.com/blog/category/people

注意:如果您面临阅读我们的本地语言。您可以更改语言吗OdiaEnglish (更改语言选项位于页 footer 分)

People类别有 8 个帖子。但这里展示了一切。我对这个查询没有任何想法。我尝试过:

$posts = Post::with([
'user' => function($query) {
$query->select(['id', 'username']);
},
'comments',
'post_category' => function($query) {
$query->select(['id', 'name']);
}
])->where('status', '=', 1)
->orderBy('id', 'DESC')->paginate($perPage);

我知道我的代码是错误的。但我对这个框架完全陌生。无法做到这一点。您能否向我提供带有分页的查询以获取帖子列表。

最佳答案

您可以轻松查询以获取所有类别$cats = Cat::all()。然后,使用循环获取每个类别 $cat 的所有帖子,并将其推送到 $cats 的子级中。

最后,您将只有一个元素(可能是 $cats)。它看起来像这样:

$cat = {
项目:数组:2[
1 => {
“id”:“1”,
“名称”:“猫1:,
“帖子”:数组:3 [
1 => post1 详细信息,
2 => post2 详细信息,
3 => post3 详细信息
]
},
2 => {
“id”:“2”,
“名称”:“类别2:,
“帖子”:数组:2 [
1 => post1 详细信息,
2 => post2 详细信息,
]
}
}

那么,在blade中,只使用$cats就可以帮助你传递ifself的$cat和$post的所有数据。

关于php - Laravel 5.6 - 如何从非关系表中获取发布数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51141525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com