getmodels framework example content column array arrays multidimensional-array yii2 yii2-advanced-app

arrays - framework - ¿Cómo usar findAll() en yii2?



yii2 framework gridview (2)

$students_ids = Yii::$app->request->post(''studentIds''); if(isset($students_ids)) { $result = Users::find()->where([''in'',''id'',$students_ids])->all(); } var_dump($result)

Intenta así

Quiero saber cómo puedo obtener todos los datos del user con ID de matriz para where condición

En yii podrías hacer algo como esto

$students = Student::model()->findAll("id IN ({$_POST[''studentIds'']})");

o

$userDtls = Student::model ()->findAllByAttributes ( array ( ''id'' => explode ( ",", $_POST [''studentIds''] ) ) );

Ahora en yii2 CDbCriteria no está allí, entonces ¿qué enfoque debo usar para lograr lo mismo?

Lo he intentado pero solo devuelve datos para la primera identificación en la matriz

$result = Users::findAll([ ''id''=> $_POST [''keylist'']]);

En la documentación está escrito que podemos usar esto

$result = Users::findAll([1,488,489]);

Pero mi array $_POST[''keylist''] es algo como esto

keylist{ 0=''1'' 1=''5'' 2=''8'' }

También he intentado esto

$ids = /Yii::$app->request->post(''keylist'', []); $result = Users::findAll($ids);

Y aún devuelve datos para la primera identificación en la matriz aquí está la captura de pantalla

Es por eso que no funciona, supongo

gracias


$users = Users::findAll($ids); es un enfoque correcto.

Vea lo que puede pasar en $ids en documentos oficiales aquí .

Como te expliqué aquí , nunca deberías confiar en los datos de $_POST y verificar su existencia y validarlos antes de usarlos.

Ejemplo de obtención y comprobación de existencia con Yii2:

$ids = /Yii::$app->request->post(''ids'');

O solo:

$ids = isset($_POST[''ids'']) ? $_POST[''ids''] : null;

Para casos más complejos, recomendaría crear un modelo de búsqueda separado y usarlo con validación, por ejemplo, ver el CRUD de Gii.

ACTUALIZACIÓN: preste atención a lo que realmente pasa como $ids .