2016-07-28 11 views
0

Ich möchte Array in Ansichtsform anzeigen, aber ich weiß nicht wie? kann mir helfen: mein Controller-Code ist:Ich möchte Array in Ansicht in yii2 anzeigen

$query = new Query; 
$query 
    ->select(['Day_Name']) 
    ->from('days') 
    ->join('INNER JOIN','doctorsworkday','doctorsworkday.Day_id =days.dayid'); 
$command = $query->createCommand(); 
$dataProvider = $command->queryAll(); 
$dataProvider= array($dataProvider); 
return $this->render('view', 
    [ 
     'model' => $this->findModel($id), 
     'days'=>$days, 
     'doctorsworkday'=>$doctorsworkday, 
     'dataProvider' => $dataProvider, 
    ]) 

meiner Ansicht Code ist:

<?= 
    DetailView::widget([ 
     'model' => $dataProvider, 
     'attributes' => [ 
      'Day_Name' 
     ], 
    ]) 
?> 

aber seine Shows: (nicht gesetzt) ​​

wenn ich vat_dump ($ dataProvider) dort ist ein Array .. aber ich weiß nicht, wie man es zeigt

enter Var_Dump

Antwort

0

Nun, zuerst verwenden Sie eine Detailansicht für die Anzeige mehrerer Ergebnisse. DetailView wird verwendet, um die Details eines einzelnen Datenmodells wie in den Dokumenten angegeben anzuzeigen. Sie können eine GridView verwenden, um mehrere Ergebnisse anzuzeigen. GridView akzeptiert einen dataProvider und nicht ein Array, daher müssen Sie Ihr Array in einen dataProvider verwandeln.

zum Glück können Sie die Klasse ArrayDataProvider verwenden, genau das zu tun:

$gridViewDataProvider = new \yii\data\ArrayDataProvider([ 
    'allModels' => $dataProvider, 
    'sort' => [ 
     'attributes' => ['Day_Name'], 
    ], 
    'pagination' => ['pageSize' => 10] 
]); 

so etwas wie dies funktionieren soll.

Dann passieren Sie das $ gridViewDataProvider auf die Gridview wie folgt aus:

<?= GridView::widget([ 
    'dataProvider' => $gridViewDataProvider, 
    'columns' => [ 
     'name' 
    ] 
]) ?> 

Beachten Sie auch, dass in Ihrem Controller Sie Ihre $ Datenprovider in einem Array mit dieser Zeile umgebrochen:

$dataProvider= array($dataProvider); 

sollten Sie entferne diese Zeile und dann sollte alles soweit funktionieren, wie ich sagen kann.

+0

es funktioniert gut .. vielen dank .. ich schätze deine hilfe :) –

Verwandte Themen