magento 2: sql sorgusunda sıralama ölçütü ve sınır cümlesi nasıl kullanılır


9

Sonucu filtrelemek için aşağıdaki kodu kullanıyorum ve sonucu sınırlamak istiyorum.

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

Bunu denedin mi? GiftColletion-> setPageSize (3)
— Magento 2

Deneyeceğim, 3 kayıtla sonuçlanacak değil mi?
— Nitin Pawar

Evet sayımı ayarlamanız gerekiyor
— Magento 2

Yanıtlar:


8

Koleksiyonda limit kullanmak için setPageSize () yöntemini kullanabilirsiniz

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

Burada setpagesize alanında sınırınıza 10 geçebilirsiniz. Herhangi bir
— sorunuz

konum ve maaş gibi iki veri alanı için düzeni nasıl ayarlayabilirim.
— Nitin Pawar

setOrder ()
— Rakesh Jesadiya

her ikisi de artan sıradaysa $ giftCollection-> setOrder (dizi ('konum', 'maaş'), artan) ile de deneyebilirsiniz. Yukarıda farklı sıralama düzeni için kullanılır.
— Rakesh Jesadiya

1
HIIII şimdi çalışıyor = >>> $ collection-> getSelect () -> ('distance <'. $ Redious) -> order ('ASC distance') -> limit ($ pageSize, $ page);
— Birjitsinh Zala

2

Sayfa boyutunu kullanarak sınır belirleyebilirsiniz:

$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

Normalde aşağıdakileri kullanıyorum ancak setPageSize()geçerli:

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

Sıralama ile ilgili olarak, sıralamanızın yönü tüm alanlar için aynıysa, bunu bir dizi kullanarak yalnızca bir çağrıda ayarlayabilirsiniz:

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

1

Tarafından sipariş :

$giftColletion->setOrder('position','ASC');
$giftColletion->setOrder('store_id','ASC');

1

Aşağıdaki kodu kullanabilirsiniz.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.