arrilot / bitrix-models

MIT License
120 stars 37 forks source link

Проблемы с limit() #11

Closed ProklUng closed 6 years ago

ProklUng commented 7 years ago

Если применить limit () к инфоблоку "некаталожного" типа (например, новостям), то он работает криво. Чтобы выбрать 16 записей надо задать 95.

$this->interior = \interior::query()->select('ID') ->filter([

                       ])
                       ->sort(['SHOW_COUNTER' =>'DESC'])
                       ->select ('NAME', 'FIELDS', 'SHOW_COUNTER', 'PROPERTY_PHOTO')
                       ->limit(16)
                       ->getList()
                       ->toArray()
    ;

Вытаскиевает только три элемента. Ставишь 95 - вытягивает сколько нужно.

interior:

class interior extends ElementModel {

const IBLOCK_ID = \iblocksID::INTERIOR;

}

ProklUng commented 6 years ago

Отличная работа с последним релизом. Спасибо!

Хотел спросить, а нельзя сделать так, чтобы модель обращалась не к одному инфоблоку ( const IBLOCK_ID = 1;), а к массиву инфоблоков. Типа такого (запрос сразу по нескольким инфоблокам):

use Arrilot\BitrixModels\Models\ElementModel;

class Products extends ElementModel {

protected IBLOCK_ID_array = ['22', '44']; }

arrilot commented 6 years ago

Спасибо. Нет, концепция модели распредленной по нескольким инфоблокам не поддерживается и не планирует. Она ломает очень многое как на техническом так и на логическом уровне. Если вам нужны такие выборки делайте их через CIBlockElement::GetList()