如何在 yii2 中使用 findAll()?
How to use findAll() in yii2?
我想知道如何获取 user
的所有数据以及 where
条件
的数组 ID
在 yii
你可以做这样的事情
$students = Student::model()->findAll("id IN ({$_POST['studentIds']})");
或
$userDtls = Student::model ()->findAllByAttributes ( array (
'id' => explode ( ",", $_POST ['studentIds'] )
) );
现在 yii2
CDbCriteria
不存在,那么我应该使用哪种方法来实现相同的目标??
我试过了,但它只有 returns 数组中第一个 id 的数据
$result = Users::findAll([ 'id'=> $_POST ['keylist']]);
在文档中写到我们可以使用这个
$result = Users::findAll([1,488,489]);
但是我的数组 $_POST['keylist']
是这样的
keylist{
0='1'
1='5'
2='8'
}
这个我也试过
$ids = \Yii::$app->request->post('keylist', []);
$result = Users::findAll($ids);
还有returns数组中第一个id的数据是屏幕截图
我猜这就是它不起作用的原因
谢谢你
$users = Users::findAll($ids);
是正确的做法。
在官方文档$ids
中查看可以传递的内容here。
正如我向您解释的那样 ,您永远不应该相信来自 $_POST
的数据并在使用前检查它是否存在并进行验证。
使用 Yii2 获取并检查是否存在的示例:
$ids = \Yii::$app->request->post('ids');
或者只是:
$ids = isset($_POST['ids']) ? $_POST['ids'] : null;
对于更复杂的情况,我建议创建单独的搜索模型并将其用于验证,例如参见 Gii 的 CRUD。
更新: 注意你实际传递的内容 $ids
。
$students_ids = Yii::$app->request->post('studentIds');
if(isset($students_ids)) {
$result = Users::find()->where(['in','id',$students_ids])->all();
}
var_dump($result)
这样试试
我想知道如何获取 user
的所有数据以及 where
条件
在 yii
你可以做这样的事情
$students = Student::model()->findAll("id IN ({$_POST['studentIds']})");
或
$userDtls = Student::model ()->findAllByAttributes ( array (
'id' => explode ( ",", $_POST ['studentIds'] )
) );
现在 yii2
CDbCriteria
不存在,那么我应该使用哪种方法来实现相同的目标??
我试过了,但它只有 returns 数组中第一个 id 的数据
$result = Users::findAll([ 'id'=> $_POST ['keylist']]);
在文档中写到我们可以使用这个
$result = Users::findAll([1,488,489]);
但是我的数组 $_POST['keylist']
是这样的
keylist{
0='1'
1='5'
2='8'
}
这个我也试过
$ids = \Yii::$app->request->post('keylist', []);
$result = Users::findAll($ids);
还有returns数组中第一个id的数据是屏幕截图
我猜这就是它不起作用的原因
谢谢你
$users = Users::findAll($ids);
是正确的做法。
在官方文档$ids
中查看可以传递的内容here。
正如我向您解释的那样 $_POST
的数据并在使用前检查它是否存在并进行验证。
使用 Yii2 获取并检查是否存在的示例:
$ids = \Yii::$app->request->post('ids');
或者只是:
$ids = isset($_POST['ids']) ? $_POST['ids'] : null;
对于更复杂的情况,我建议创建单独的搜索模型并将其用于验证,例如参见 Gii 的 CRUD。
更新: 注意你实际传递的内容 $ids
。
$students_ids = Yii::$app->request->post('studentIds');
if(isset($students_ids)) {
$result = Users::find()->where(['in','id',$students_ids])->all();
}
var_dump($result)
这样试试