magento 2: Як користуватися замовленням і обмежити пункт у запиті sql


9

Я використовую наступний код для фільтрування результату, і я хочу обмежити результат.

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

Ви спробували цей $ giftColletion-> setPageSize (3)
Magento 2

Спробую, це призведе до мене 3 записи, правда?
Нітін Павар

Так, вам потрібно встановити кількість
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. будь ласка, повідомте мене, якщо у вас є якісь проблеми
Ракеш Єсадія

як я можу встановити порядок для двох полів даних, як посада та зарплата.
Нітін Павар

ви можете використовувати два рази setOrder ()
Ракеш Єсадія

ви також можете спробувати $ giftCollection-> setOrder (масив ('позиція', 'зарплата'), Asc), якщо обидва в порядку Asc. Вище використовується для іншого порядку сортування.
Ракеш Єсадія

1
ХІІІ ІТС, що працюють зараз = >>> $ collection-> getSelect () -> having ('distance <'. $ Redious) -> order ('ASC' distance) -> 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);

Щодо сортування, якщо напрямок вашої сортування однаковий для всіх полів, ви можете встановити це лише в одному дзвінку за допомогою масиву:

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


1

Ви можете використовувати код нижче.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.