#cakephp #where-in #cakephp-3.2
#cakephp #где-в #cakephp-3.2
Вопрос:
Я работаю над CakePHP 3.2
Я хочу использовать массив в запросе WHERE IN ()
Код выглядит так
$filter_p_t = $this->request->query('p_t');
$pros10 = $this->Products->find()
->where([
'SellerProducts.stock >' => 0,
'SellerProducts.status' => 1,
'Products.p_status' => 1,
])
->contain([
'SellerProducts',
'ProductTypes.Subcategories.Categories',
]);
Вот $filter_p_t
массив из url с параметром
/products/display/1?p_t[]=1amp;p_t[]=86
Я хочу включить $filter_p_t
в where
условие, чтобы найти все IN(1,86)
Как я могу использовать php-массив для условия WHERE IN в CakePHP 3?
Ответ №1:
Вы можете использовать IN
ключевое слово непосредственно после столбца. Предполагается, что $filter_p_t
это массив, подобный array(1, 86)
.
->where(['id IN' => $filter_p_t]);
http://book.cakephp.org/3.0/en/orm/query-builder.html#automatically-creating-in-clauses