Фильтрация элементов ИС по первой букве

#
Фильтрация элементов ИС по первой букве
Пользовался поиском, нашел темы только по 5 ветке, вопрос, как реализовать это в 6 ветке?

в соседней теме мне удалось реализовать сортировку по убыванию и возрастанию, но как прикрутить фильтр по первой букве?

//Сортируем элементы инфосистемы

if (Core_Array::getGet('filter') || Core_Array::getGet('sorting'))
   {
      
$Informationsystem_Controller_Show->addEntity(
         Core::factory('Core_Xml_Entity')
            ->name('filter')->value(1)
      );

$oInformationsystem = $Informationsystem_Controller_Show->getEntity();

$sorting = intval(Core_Array::getGet('sorting'));
      $Informationsystem_Controller_Show->addEntity(
         Core::factory('Core_Xml_Entity')
            ->name('sorting')->value($sorting)
      );
      $Informationsystem_Controller_Show->addCacheSignature('sorting=' . $sorting);

$sorting == 1 && $Informationsystem_Controller_Show->InformationsystemItems()->queryBuilder()
         ->clearOrderBy()
         ->orderBy('name', 'ASC');

$sorting == 2 && $Informationsystem_Controller_Show->InformationsystemItems()->queryBuilder()
         ->clearOrderBy()
         ->orderBy('name', 'DESC');
      
      
      
      
   }
Модератор
#
Re: Фильтрация элементов ИС по первой букве
так:
->where('поле', 'LIKE', 'a%')
#
Re: Фильтрация элементов ИС по первой букве
Т.е. под полем понимается название эелемента ИС (name) ? 'a%' это буква?
Модератор
#
Re: Фильтрация элементов ИС по первой букве
если по имени ИЭ, то да.
#
Re: Фильтрация элементов ИС по первой букве
Отлично! Спасибо огромное!

А как добиться чтобы не под каждую букву алфавита писать

->where('поле', 'LIKE', 'буква%')

а чтобы буква бралась из адресной строки, т.е. GET запросом?
Модератор
#
Re: Фильтрация элементов ИС по первой букве
->where('поле', 'LIKE', mb_substr(Core_Array::getGet('alpha'), 0, 1) . '%')
#
Re: Фильтрация элементов ИС по первой букве
Благодарен за помощь! Все получилось! Прикрутил таким образом:

$filter = intval(Core_Array::getGet('filter'));
      $Informationsystem_Controller_Show->addEntity(
         Core::factory('Core_Xml_Entity')
            ->name('filter')->value($filter)
      );
      $Informationsystem_Controller_Show->addCacheSignature('filter=' . $filter);

$letter = mb_substr(Core_Array::getGet('filter'), 0, 1);

$filter == $letter && $Informationsystem_Controller_Show->InformationsystemItems()->queryBuilder()
         ->where('name', 'LIKE', $letter . '%');
Модератор
#
Re: Фильтрация элементов ИС по первой букве
Пожалуйста
#
Re: Фильтрация элементов ИС по первой букве
Последний вопрос, ради интереса, а как реализовать по цифре фильтр? Если имя элемента ИС начинается с цифры
#
Re: Фильтрация элементов ИС по первой букве
Уважаемый модератор! Все отлично работает но есть одна проблема, когда включаю кэширование фильтр перестает работать, выбираешь одну букву - фильтрует, выбираешь другую букву - остается фильтр на предыдущей букве
В чем засада?
Авторизация