magento 2: Cara menggunakan urutan dan membatasi klausa dalam kueri sql

9

Saya menggunakan kode berikut untuk memfilter hasil dan saya ingin membatasi hasilnya.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');
Nitin Pawar
sumber
Apakah Anda mencoba $ giftColletion-> setPageSize (3)
Magento 2
Akan mencobanya, Ini akan menghasilkan 3 catatan, kan?
Nitin Pawar
Ya, Anda perlu menetapkan hitungan
Magento 2

Jawaban:

8

Anda dapat menggunakan setPageSize () untuk menggunakan batas dalam koleksi

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');
$giftColletion->setOrder('salary','ASC');
$giftColletion->setPageSize(10);
Rakesh Jesadiya
sumber
Anda dapat mengubah di sini 10 hingga batas Anda di bidang setpagesize. tolong beri tahu saya jika Anda memiliki masalah
Rakesh Jesadiya
bagaimana saya bisa mengatur pesanan untuk dua bidang data seperti posisi dan gaji.
Nitin Pawar
Anda dapat menggunakan dua kali setOrder ()
Rakesh Jesadiya
Anda juga dapat mencoba dengan $ giftCollection-> setOrder (array ('posisi', 'gaji'), kenaikan) jika keduanya dalam urutan naik. Di atas digunakan untuk berbagai urutan.
Rakesh Jesadiya
1
HIIII ITS berfungsi sekarang = >>> $ collection-> getSelect () -> have ('distance <'. $ Redious) -> order ('distance ASC') -> batas ($ pageSize, $ page);
Birjitsinh Zala
2

Menggunakan ukuran Halaman Anda dapat menetapkan batas:

$giftColletion = $this->_giftFactory->getCollection();
    $giftColletion->addFieldToFilter('store_id', 1);
    $giftColletion->setOrder('position','ASC');
    $giftColletion->setPageSize($pageSize);
    $giftColletion->setCurPage($page);
Ronak Chauhan
sumber
2
$giftColletion = $this->_giftFactory->getCollection()->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position', 'ASC');
$giftColletion->setOrder('attribute_code', 'ASC'); 
$giftColletion->setPageSize($limitNo);
Ashish Jagnani
sumber
2

Saya biasanya menggunakan yang berikut tetapi setPageSize()juga valid:

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

Mengenai penyortiran, jika arah penyortiran Anda sama untuk semua bidang, Anda dapat mengaturnya hanya dalam satu panggilan menggunakan array:

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

Dipesan oleh :

$giftColletion->setOrder('position','ASC');
$giftColletion->setOrder('store_id','ASC');
Ronak Chauhan
sumber
1

Anda dapat menggunakan kode di bawah ini.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
Dev
sumber