Как сделать несколько where-> like () с Zend Framework 2? - PullRequest
0 голосов
/ 14 января 2019

Я попытался сделать гнездо на:

$where = new Where();

Я также пытался сделать несколько:

$where->like

Может ли кто-нибудь дать мне пример того, как я могу сделать несколько лайков? Я хотел бы найти два разных поля с одинаковым значением %$value%

Спасибо и всего наилучшего

Ответы [ 3 ]

0 голосов
/ 17 января 2019

Внутри объекта Where вы можете NEST (заключить в скобки) свои параметры и указать оператор (в данном случае OR):

$where = new Where();
$where->NEST
    ->like('field1', '%value%')
    ->OR
    ->like('field2', '%value%')
    ->UNNEST;

Будет сгенерировано:

... WHERE (`field1` LIKE '%value%' OR `field2` LIKE '%value%')
0 голосов
/ 31 января 2019

Расширение вышеуказанного решения более функциональным способом:

$where = new Where();
$where->nest()
    ->like('field1', '%value%')
    ->OR
    ->like('field2', '%value%')
    ->unnest();
0 голосов
/ 14 января 2019

Нашли решение, используя ИЛИ при окончательном выборе. Следующий пример показывает это:

$where = array();
$where[] = $rel->field1 . " LIKE '%". $value ."%' ";
$select->where($where, 'OR');

Я не включаю foreach, но вы поняли, добавьте ваши запросы в где и используйте OR в качестве предикатов для нескольких записей.

...