Переопределение условий Where для отдельной модели

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
rommcr
Сообщения: 128
Зарегистрирован: 2014.12.24, 16:35

Переопределение условий Where для отдельной модели

Сообщение rommcr »

Есть модель, наследующая activeRecord и построенная на основании View.

Вьюха, в свою очередь, left-джойнит две таблицы, и таким образом ключевого поля в чистом виде в ней нет, формируется поле item_id на основании двух полей из разных таблиц, и получается что-то вида "xxxxx.yyy", где xxxx - значение поля 'F1' из первой таблицы, а yyy - поля F2 из второй.

Поиск по вьюхе вида "where item_id = 'xxxx.yyy'" нежизнеспособен при большом количестве записей (а их будет реально много), т.к. не использует ключи. Нужно заменять его на WHERE F1 = 'xxxx' AND F2 = 'yyy'.

Конечно, можно везде, где нужен поиск по item_id, использовать такую конструкцию, но это несколько громоздко, и не факт, что кто-то другой не использует привычный findOne('xxxx.yyy') и не заставит базу надолго призадуматься.

В чем состоит вопрос: есть ли изящный способ переопределять WHERE такого рода для всех возможных случаев (findOne, where, andWhere, orWhere etc) в одном месте, чтобы код оставался в привычном виде и всё было прозрачно?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Переопределение условий Where для отдельной модели

Сообщение samdark »

Свой ActiveQuery.
rommcr
Сообщения: 128
Зарегистрирован: 2014.12.24, 16:35

Re: Переопределение условий Where для отдельной модели

Сообщение rommcr »

samdark писал(а): 2017.06.21, 03:09 Свой ActiveQuery.
Угу, или свой фреймворк.
Очень жаль.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Переопределение условий Where для отдельной модели

Сообщение samdark »

При чём тут свой фреймворк?

http://www.yiiframework.com/doc-2.0/gui ... ry-classes
rommcr
Сообщения: 128
Зарегистрирован: 2014.12.24, 16:35

Re: Переопределение условий Where для отдельной модели

Сообщение rommcr »

При том, что это избыточные действия. Переопределю пару методов, да и все
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Переопределение условий Where для отдельной модели

Сообщение samdark »

ОК. Если получится сделать универсально — закиньте на GitHub issue с рефакторингом. Спасибо.
Ответить