/ / Como criar uma cláusula `IN` na consulta do CakePHP? - cakephp, cakephp-3.0, construtor de consultas

Como criar uma cláusula `IN` na consulta do CakePHP? - cakephp, cakephp-3.0, construtor de consultas

Como você faz isso em cláusula no novo CakePHP? Estou tentando:

$restaurants->find()->where(["id" => $r_ids])->all();

Onde $r_ids é uma matriz de ids que eu preciso na minha consulta, mas isso não funciona como esperado.

Respostas:

21 para resposta № 1

Com o CakePHP 3.x, agora é necessário indicar o tipo de dados, que para uma matriz de valores precisa ter [] acrescentado ao tipo:

$query = $articles
->find()
->where(["id" => $ids], ["id" => "integer[]"]);

ou usar explicitamente o IN palavra chave:

$query = $articles
->find()
->where(["id IN" => $ids]);

Veja também


0 para resposta № 2

Experimente este para o CakePHP 3.x

$query = $restaurants
->find()
->where(["id IN" => $r_ids]);
$query->all();

0 para resposta № 3

Você também pode usar a sintaxe curta:

    $result = $restaurants->find("all",
["conditions" => ["id IN" =>$r_ids]]
)->all();