magento 2: Cách sử dụng mệnh đề by và giới hạn mệnh đề trong truy vấn sql


9

Tôi đang sử dụng mã sau đây để lọc kết quả và tôi muốn giới hạn kết quả.

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

Bạn đã thử $ giftColletion-> setPageSize (3)
Magento 2

Sẽ thử nó, nó sẽ cho tôi 3 hồ sơ, phải không?
Nitin Pawar

Có, bạn cần đặt số đếm
Magento

Câu trả lời:


8

Bạn có thể sử dụng setPageSize () để sử dụng giới hạn trong bộ sưu tập

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

Bạn có thể thay đổi ở đây 10 đến giới hạn của mình trong trường setpagesize. vui lòng cho tôi biết nếu bạn có bất kỳ vấn đề nào
Rakesh Jesadiya

Làm thế nào tôi có thể đặt thứ tự cho hai trường dữ liệu như vị trí và tiền lương.
Nitin Pawar

bạn có thể sử dụng hai lần setOrder ()
Rakesh Jesadiya

bạn cũng có thể thử với $ giftCollection-> setOrder (mảng ('vị trí', 'mức lương'), asc) nếu cả hai đều theo thứ tự asc. Ở trên được sử dụng cho thứ tự sắp xếp khác nhau.
Rakesh Jesadiya

1
HIIII ITS hiện đang hoạt động = >>> $ sưu tập-> getSelect () -> có ('khoảng cách <'. $ Redious) -> order ('distance ASC') -> giới hạn ($ pageSize, $ page);
Birjitsinh Zala

2

Sử dụng kích thước Trang bạn có thể đặt giới hạn:

$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

Tôi thường sử dụng như sau nhưng setPageSize()cũng hợp lệ:

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

Về sắp xếp, nếu hướng sắp xếp của bạn giống nhau cho tất cả các trường, bạn có thể đặt chỉ trong một cuộc gọi bằng một mảng:

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

1

Đặt bởi :

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

1

Bạn có thể sử dụng mã dưới đây.

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1)->setPageSize($limit)->setCurPage($criteria)->setOrder('position','ASC');
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.