magento 2:SQLクエリでorder byおよびlimit句を使用する方法


9

結果をフィルタリングするために次のコードを使用していますが、結果を制限したいと思います。

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');

これを試してみましたか$ giftColletion-> setPageSize(3)
Magento 2

試してみます、それは私に3つの記録をもたらすでしょう、そうですか?
Nitin Pawar 2016年

はい、カウントを設定する必要があります
Magento 2

回答:


8

setPageSize()を使用して、コレクションで制限を使用できます

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');
$giftColletion->setOrder('salary','ASC');
$giftColletion->setPageSize(10);

ここで、10をsetpagesizeフィールドの制限に変更できます。問題がある場合はお知らせください
Rakesh Jesadiya '10

ポジションや給与などの2つのデータフィールドの順序を設定するにはどうすればよいですか。
Nitin Pawar 2016年

2回使用できますsetOrder()
Rakesh Jesadiya

$ giftCollection-> setOrder(array( 'position'、 'salary')、asc)を使用して、両方がasc順序である場合も試すことができます。上記は、さまざまな並べ替え順序に使用されます。
Rakesh Jesadiya 2016年

1
現在機能しているHIIII ITS = >>> $ collection-> getSelect()-> having( 'distance <'。$ redious)-> order( 'distance ASC')-> limit($ pageSize、$ page);
Birjitsinh Zala

2

ページサイズを使用して、制限を設定できます。

$giftColletion = $this->_giftFactory->getCollection();
    $giftColletion->addFieldToFilter('store_id', 1);
    $giftColletion->setOrder('position','ASC');
    $giftColletion->setPageSize($pageSize);
    $giftColletion->setCurPage($page);

2
$giftColletion = $this->_giftFactory->getCollection()->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position', 'ASC');
$giftColletion->setOrder('attribute_code', 'ASC'); 
$giftColletion->setPageSize($limitNo);

2

私は通常、以下を使用しますが、setPageSize()有効でもあります。

$collection->getSelect()->limit($limit);

ソートに関して、ソートの方向がすべてのフィールドで同じである場合、配列を使用して1回の呼び出しでそれを設定できます。

$collection->setOrder([$field1, $field2, ...], $dir);


1

以下のコードを使用できます。

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.