3

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

我试过使用shuffle()and 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) 
  {}

?>

4

1 回答 1

1

内容丰富的 PHP SDK 的作者在这里。

不幸的是,保存查询结果的类当前不允许访问内部数组。我刚刚打开了一个拉取请求来改变它。它将成为 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()使用。它不会返回洗牌后的数组,而是将其更改到位。

于 2017-05-15T08:45:42.453 回答