Я хочу создать activeQuery с помощью model :: find() -> где ... , который должен генерировать sql, как показано ниже (не считая логики). Никаких объединений, просто много условий для отдельной таблицы. Я думаю, это должно быть просто, и я просто где-то отсутствует.
Я не могу понять, как создать такое вложенное место, где условия. Любые намеки?PHP Yii2 ActiveRecord с использованием вложенного условия, где условие
select * from article where
(
(site="domain.com" AND service="electronics" AND source="reader" AND tag like "%" AND marker like "%")
OR
(site="domain.net" AND service="electronics" AND source like "%" AND tag like "%" AND marker like "%")
)
AND NOT
(
(site="domain.com" AND service="electronics" AND source like "%" AND tag like "%" AND marker like "%")
OR
(site="domain.us" AND service="electronics" AND source like "%" AND tag like "%" AND marker like "%")
)
Но если я это сделаю, я не смогу использовать dataprovider и gridview. GridView не будет доступен для поиска/сортировки при использовании findBySql. Я использую findBySql на данный момент, но это очень помогло бы мне, если бы я мог использовать AR. – Kubber
Используя myQuery в качестве значения для запроса, вы можете делать то, что вам нужно (dataProvider). Я обновил ответ – scaisEdge
Я исправлю ответ – scaisEdge