2016-07-28 8 views
0

配列をビュー形式で表示したいのですが、どうすればよいのでしょうか? いずれかが私を助けることができる: 私のコントローラのコードは次のとおりです。配列をyii2で表示したい

$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, 
    ]) 

私の見解コードは次のとおりです。

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

が、そのショー:(未設定)

私が使用vat_dump($ dataProvider)配列がありますが、表示方法がわかりません

enter Var_Dump

答えて

0

まず、複数の結果を表示するためにDetailViewを使用しています。 DetailViewは、ドキュメント内で述べたように単一のデータモデルの詳細を表示するために使用されます。 GridViewを使用して複数の結果を表示することができます。 GridViewは配列ではなくdataProviderを受け入れますので、配列をdataProviderに変換する必要があります。

幸いあなたはちょうどそれを行うには、クラスのArrayDataProviderを使用することができます。このような

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

何かが動作するはずです。

次に、あなたがこのようにGridViewにこの$のgridViewDataProviderを渡す:

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

はまた、あなたのコントローラ内で使用すると、この行と列であなたの$のdataProviderを包んだことに注意してください:

$dataProvider= array($dataProvider); 

あなたがすべきその行を削除すると、すべてがわかるようになるはずです。

+0

それはうまく動作します..非常にありがとう..私はあなたの助けに感謝:) –

関連する問題