CakePHP 3-在条件中使用OR?

问题描述 投票:0回答:1

我如何在CakePHP中使用“或”条件?到目前为止,这就是我得到的:

$sales_transactions = $transactionsTable->find('all', [
        'conditions' => [
            'or' => [
                'transaction_date LIKE' => '2019-01-%',
                'transaction_date LIKE' => '2020-01-%'
            ]
        ]
    ]);

但是,这只是一个具有重复键的数组,因此它仅使用最后一部分(2020年日期)-我想将所有年份为2019年或2020年的交易(例如SELECT *** WHERE transaction_date喜欢'2020-01-%'或transaction_date喜欢'2019-01-%'。

但是无论我尝试什么,我只能得到1年,并且使用AND-我无法使用OR作为条件。

这里有任何帮助,谢谢大家! :-)

php cakephp cakephp-3.0
1个回答
0
投票

哦,对了,我刚刚弄清楚了,您必须将条件放在OR数组中的自己的数组中,如下所示:

$sales_transactions = $transactionsTable->find('all', [
        'conditions' => [
            'device_id IN' => $deviceIDSinDepartment,
            'customer_id' => 0,
            'or' => [
                ['transaction_date LIKE' => '' . $date->format('Y-m') . '-%'],
                ['transaction_date LIKE' => '' . $dateLastYear->format('Y-m') . '-%']
            ]
        ],
        'contain' => [
            'products'
        ],
        'group' => [
            'DATE(transaction_date)',
            'is_leftover'
        ]
    ]);
© www.soinside.com 2019 - 2024. All rights reserved.