CakePHP 3.x ИЛИ в состоянии поиска с несколькими одинаковыми полями - PullRequest
0 голосов
/ 17 декабря 2018

Я хотел бы запросить базу данных для

Plates.page_number => 1 OR Plates.page_number => Cover

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

   $query = $this->Ledgers->find('all', array(
        'contain' => array(
            'Plates' => [
                'conditions' => [
                    'OR' => [
                        'Plates.plate_title' => 'Front Cover',
                        'Plates.page_number' => '1',
                        'Plates.page_number' => 'Cover' // Duplicate Array Key
                    ]
                ]
            ], 'Plates.PlateImages', 'Tribes'
        ),
        'conditions' => array(
            'Ledgers.disabled' => 'n', 'Ledgers.id IN' => $ledgerIds
        )
    ))->orderAsc('ledger_title');

1 Ответ

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

Пожалуйста, попробуйте заключить ваши условия в отдельные массивы, например:

'OR' => [
    ['Plates.page_number' => '1'],
    ['Plates.page_number' => 'cover'],
    ...
]

Более подробную информацию можно найти в документации CakePHP:

Конструктор запросов -> Расширенные условия

...