Задать вопрос
@Pagliaccio
Внедряю CRM

Как отфильтровать записи в модели перед выводом index?

Всем день добрый. Вопрос связан с вопросом Как хранить и обрабатывать похожие сущности (например, плановую и фактическую транзакции)?

В одной таблице хранятся записи двух (в дальнейшем возможно и больше) типов записей.
Тип хранится в колонке type.

Сделал в меню два пункта с параметром type, который передаётся через get-запрос.
Проверил, что контроллер в actionIndex этот параметр получает.
Попробовал добавить условие в ModelSearch - не помогло: в переменной $params параметр ['type'] пришёл, но после $this->load($params) он обнулился.

Подскажите, пожалуйста, как отфильтровать значения в модели (перед выводом в GridView) по параметру type? Т.е. когда никакие фильтры ещё не передаются.
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
onqu
@onqu
weasy
Любая модель в метод load ждет массив типа:
[
    // имя класса без неймспейса
    'ModelSearch' => [
        ...
    ]
]


Это поведение можно переопределить, но можно делать и так:
$this->load($params, '');

Вторым параметром мы скажем модельке, чтобы она искала атрибуты от корня массива.

Подскажите, пожалуйста, как отфильтровать значения в модели (перед выводом в GridView) по параметру type? Т.е. когда никакие фильтры ещё не передаются.

if (!$modelSearch->type) {
    $modelSearch->type = 'булехум!';
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы