Полностью настраиваемый фильтр в Yii2 - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть вид сетки, где мне нужно показать процентную долю одного столбца с некоторой логикой вычисления.

Это сделано, у меня есть числовое значение в одном столбце, которое говорит "Процент", но в таблице есть метка "У меня есть""только поле.

Теперь я хочу добавить фильтр поиска для этого поля" процент ", но проблема в моей таблице - нет процента, поэтому при попытке поиска в процентах он проверяет только значение меток.

Как найти значение «процент» в фильтре сетки вместо поиска в поле «отметка».

https://www.screencast.com/t/IfUezWnJ

На самом деле у меня есть значение в столбце базы данных 'батарея 'как' 1256 'и после некоторого вычисления я показываю процент батареи в gridview.но в фильтре поиска gridview я хотел бы искать в процентах.Но я не мог, потому что в таблице у нас нет процентов.

1 Ответ

0 голосов
/ 21 декабря 2018

Взгляните на эту страницу .

Основные шаги:

  1. В базовой модели создайте виртуальное свойство (метод получения), которое выполняетисчисление, необходимое для получения процента от поля реальной отметки: getPercentage()
  2. В модели поиска добавьте открытое свойство (атрибут) с тем же именем виртуального свойства в базовую модель (public $percentage)
  3. В методе правил добавьте безопасный валидатор для этого нового свойства.
  4. В методе поиска добавьте правильное предложение where в запрос.Это может быть немного сложно, если процентное вычисление является сложным или включает подзапросы.Простой случай будет, если процент получен из другого поля, скажем, max_value.В этом случае вы можете использовать строку типа: $query->andWhere ('ilike','mark',$this->percentage/100*max_value) (Это только пример. Конечно, ilike не лучший оператор для этого условия.)
  5. Используйте виртуальное поле в виджете gridview.

Если вам нужен подзапрос или оператор для получения процента, вам нужно добавить несколько дополнительных предложений в объект $ query, но основные шаги те же.

Если вы хотитеЧтобы добавить возможности сортировки в виджет сетки, вы должны определить, как упорядочивать и использовать выражения при необходимости.Поверьте на эту ссылку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...