2015-01-02 11 views
10

Sto cercando di visualizzare dati per ogni utente in ordine decrescente data utilizzando provider di dati questo funziona per Yii 1 al controllore:criteri Attivo provider di dati in Yii 2

  $DataProvider = new CActiveDataProvider('ModelName', array(
       'criteria' => array(
       'condition' => 'user_id=' . Yii::app()->user->id, 
       'order' => 'submitted_dt DESC', 
      ), 
      'pagination' => array(
       'pageSize' => 20, 
      ), 
     )); 

provo questo in 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(); 

L'errore ottengo è proprietà sconosciuta: yii\data\ActiveDataProvider::criteria. Quindi qual è il modo per impostare questa condizione e l'ordine? Tutti i suggerimenti sono accolti

risposta

14

modo giusto s' The Yii2 sarebbe:

$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(); 

Quindi, non occorre criteria in Yii2 in quanto questo non è esiste più.

+0

Grazie mille, puoi darmi un esempio per visualizzare questo fornitore di dati come TbGridView in Yii 2? – XXLend

+0

@XXLend Prego caro, ecco un esempio http://www.yiiframework.com/wiki/772/pjax-on-activeform-and-gridview-yii2/ –

+0

Per multiplr dove condizioni: ''query' = > ModelName :: find() -> where (['CollaboratorId' => $ collabaratorId]) -> andWhere ("Status = 1") ' –

Problemi correlati