Yii 2 中的活动数据提供者标准
criteria Active data provider in Yii 2
我正在尝试使用数据提供程序以降序显示每个用户的数据库,这适用于控制器上的 Yii 1:
$DataProvider = new CActiveDataProvider('ModelName', array(
'criteria' => array(
'condition' => 'user_id=' . Yii::app()->user->id,
'order' => 'submitted_dt DESC',
),
'pagination' => array(
'pageSize' => 20,
),
));
我在 Yii 2 中尝试这个:
$DataProvider = new ActiveDataProvider([
'query' => ModelName::find(),
'criteria' => [
'condition' => 'user_id=' . Yii::$app->user->identity->id,
'order' => 'submitted_dt DESC',
],
'pagination' => [
'pageSize' => 20,
],
]);
// get posts in the current page
$Model= $DataProvider->getModels();
我得到的错误是未知属性:yii\data\ActiveDataProvider::criteria
。那么设置这个条件和顺序的方法是什么?
欢迎所有建议
Yii2
的正确方法是:
$DataProvider = new ActiveDataProvider([
'query' => ModelName::find()->
where(['user_id'=>Yii::$app->user->identity->id])->
orderBy('submitted_dt DESC'),
'pagination' => [
'pageSize' => 20,
],
]);
// get posts in the current page
$Model= $DataProvider->getModels();
因此,您不需要 Yii2
中的 criteria
,因为它已不存在。
我正在尝试使用数据提供程序以降序显示每个用户的数据库,这适用于控制器上的 Yii 1:
$DataProvider = new CActiveDataProvider('ModelName', array(
'criteria' => array(
'condition' => 'user_id=' . Yii::app()->user->id,
'order' => 'submitted_dt DESC',
),
'pagination' => array(
'pageSize' => 20,
),
));
我在 Yii 2 中尝试这个:
$DataProvider = new ActiveDataProvider([
'query' => ModelName::find(),
'criteria' => [
'condition' => 'user_id=' . Yii::$app->user->identity->id,
'order' => 'submitted_dt DESC',
],
'pagination' => [
'pageSize' => 20,
],
]);
// get posts in the current page
$Model= $DataProvider->getModels();
我得到的错误是未知属性:yii\data\ActiveDataProvider::criteria
。那么设置这个条件和顺序的方法是什么?
欢迎所有建议
Yii2
的正确方法是:
$DataProvider = new ActiveDataProvider([
'query' => ModelName::find()->
where(['user_id'=>Yii::$app->user->identity->id])->
orderBy('submitted_dt DESC'),
'pagination' => [
'pageSize' => 20,
],
]);
// get posts in the current page
$Model= $DataProvider->getModels();
因此,您不需要 Yii2
中的 criteria
,因为它已不存在。