where" 参数的情况下,它将按字母顺序对条目进行排序。 我试过使用 shuffle() 和 array_rand(),但是它无法将 Con-6ren">
gpt4 book ai didi

php - 内容丰富:以随机顺序返回条目

转载 作者:搜寻专家 更新时间:2023-10-31 21:22:23 24 4
gpt4 key购买 nike

是否可以通过内容查询以随机顺序返回条目?
在不指定 "->where" 参数的情况下,它将按字母顺序对条目进行排序

我试过使用 shuffle()array_rand(),但是它无法将 Contentful 对象识别为 数组

这是我目前拥有的:

<?php			
$query = new \Contentful\Delivery\Query;
$query->setContentType(PRODUCT_TYPE);

$entries = $client->getEntries($q1->where('fields.images[exists]', 'true')->where('fields.category.sys.id', $entry->getCategory()->getId())->where('limit', '3'));

$array_shuffle = shuffle($entries)

foreach ($array_shuffle as $entry)
{}

?>

最佳答案

这里是 Contentful PHP SDK 的作者。

不幸的是,保存查询结果的类当前不允许访问内部数组。我刚开了一个pull request改变它。它将成为 1.2 版的一部分,将于本周晚些时候发布。

与此同时,您最好的选择是使用 iterator_to_array()

<?php           
$query = new \Contentful\Delivery\Query;
$query->setContentType(PRODUCT_TYPE);

$entries = $client->getEntries($q1->where('fields.images[exists]', 'true')->where('fields.category.sys.id', $entry->getCategory()->getId())->where('limit', '3'));

$arrEntries = iterator_to_array($entries);

shuffle($arrEntries)

foreach ($arrEntries as $entry)
{}

请注意,我还修复了 shuffle() 的使用方式。它不返回打乱后的数组,而是就地更改它。

关于php - 内容丰富:以随机顺序返回条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43972543/

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