gpt4 book ai didi

php - 对子集合的操作

转载 作者:行者123 更新时间:2023-11-29 15:41:35 26 4
gpt4 key购买 nike

我有这样的代码

$tag = Tag::where('slug' = $slug)->first();
$posts = $tag->posts;

它工作正常,但我想在帖子上使用 limit、orderBy、offset 和其他操作。所以它有效

$posts = $tag->posts->where('accept', 1);

但是不起作用

    $posts-> $tag->posts->orderBy('created_at', 'desc');
//or
$posts-> $tag->posts
->offset($offset)
->limit($limit);

我必须在 var 的查询中使用偏移量和限制。我怎样才能做到这一点?

最佳答案

当您设置初始查询Tag::where('slug' = $slug)->first();时,您正在使用查询生成器及其方法。但是,当 Laravel 返回结果时,它们会作为集合对象返回——它们具有非常相似但略有不同的可用方法。 https://laravel.com/docs/5.8/collections#available-methods

在集合或其子集合上,您可以使用 sortBy() 或 sortByDesc(),而不是 orderBy()。这些将返回集合的实例,按您指定的键排序。 $results = $posts->sortBy($sorting);

与limit的思路相同,这种情况下可以使用splice方法。 (集合基本上是类固醇的 php 数组)Splice 接受两个参数,一个起始索引和一个限制。因此,要仅获取前 10 个项目,您可以这样做: $results = $posts->splice(0, 10);

当然,您也可以将它们链接在一起,如 $results = $tag->posts->sortBy('id')->splice(0, 10);

关于php - 对子集合的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57576926/

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