2017-05-15 21 views
2

内容の多いクエリでエントリをランダムな順序で返すことは可能ですか?
"->where"パラメータを指定しないと、アルファベット順に並べ替えられます内容:ランダムな順序でエントリを返す

しかし私はそれが配列としてContentfulオブジェクトを認識しない、shuffle()array_rand()を使用してみました。ここContentful PHP SDKの

<?php \t \t \t 
 
$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) 
 
    {} 
 

 
?>

答えて

1

著者:ここ

は、私が現在持っているものです。

クエリの結果を保持するクラスは現在、内部配列へのアクセスを許可していません。私はちょうどそれを変更する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()の使用方法も修正しました。それはシャッフルされた配列を返しません。

関連する問題