我想在 yii2 的视图中显示数组
i want to display array in view in 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) 时,有一个数组..但我不知道如何显示它
首先,您使用 DetailView 显示多个结果。如文档中所述,DetailView 用于显示单个数据模型的详细信息。您可以使用 GridView 来显示多个结果。 GridView 接受 dataProvider 而不是数组,因此您需要将数组转换为 dataProvider。
幸运的是,您可以使用 class ArrayDataProvider 来做到这一点:
$gridViewDataProvider = new \yii\data\ArrayDataProvider([
'allModels' => $dataProvider,
'sort' => [
'attributes' => ['Day_Name'],
],
'pagination' => ['pageSize' => 10]
]);
像这样的东西应该有用。
然后像这样将这个 $gridViewDataProvider 传递给 gridview:
<?= GridView::widget([
'dataProvider' => $gridViewDataProvider,
'columns' => [
'name'
]
]) ?>
另请注意,在您的控制器中,您使用以下行将 $dataProvider 包装在一个数组中:
$dataProvider= array($dataProvider);
您应该删除该行,然后据我所知一切都应该正常工作。
我想在视图窗体中显示数组,但我不知道如何? 谁能帮我 : 我的控制器代码是:
$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) 时,有一个数组..但我不知道如何显示它
首先,您使用 DetailView 显示多个结果。如文档中所述,DetailView 用于显示单个数据模型的详细信息。您可以使用 GridView 来显示多个结果。 GridView 接受 dataProvider 而不是数组,因此您需要将数组转换为 dataProvider。
幸运的是,您可以使用 class ArrayDataProvider 来做到这一点:
$gridViewDataProvider = new \yii\data\ArrayDataProvider([
'allModels' => $dataProvider,
'sort' => [
'attributes' => ['Day_Name'],
],
'pagination' => ['pageSize' => 10]
]);
像这样的东西应该有用。
然后像这样将这个 $gridViewDataProvider 传递给 gridview:
<?= GridView::widget([
'dataProvider' => $gridViewDataProvider,
'columns' => [
'name'
]
]) ?>
另请注意,在您的控制器中,您使用以下行将 $dataProvider 包装在一个数组中:
$dataProvider= array($dataProvider);
您应该删除该行,然后据我所知一切都应该正常工作。