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
.