Yii2 ArrayDataProvider可以用作ActiveDataProvider吗?
我正在尝试使用ArrayDataProvider填充我的listView。但是,数据提供程序由数组而不是对象组成。我遇到这个问题是因为模型中的类别是一个id,我需要与另一个表中的id对应的名称。因此,我创建了一个数组,其中id是对应的名称Yii2 ArrayDataProvider可以用作ActiveDataProvider吗?,yii2,Yii2,我正在尝试使用ArrayDataProvider填充我的listView。但是,数据提供程序由数组而不是对象组成。我遇到这个问题是因为模型中的类别是一个id,我需要与另一个表中的id对应的名称。因此,我创建了一个数组,其中id是对应的名称 private function getDataProvider() { return new ArrayDataProvider([ 'allModels'=>$this->getFaqs(), // returns ar
private function getDataProvider()
{
return new ArrayDataProvider([
'allModels'=>$this->getFaqs(), // returns array of faqs
'sort'=>[
'attributes'=>['id','category','question','answer']],
'pagination'=>[
'pageSize'=>10,
],
]);
}
这是我的ListView小部件
echo ListView::widget([
'dataProvider' => $dataProvider,
'itemView' => function($dataProvider, $key, $index, $widget)
{
return Html::a($dataProvider->question,
Url::toRoute(['faq/view', 'id' => $dataProvider->primaryKey]));
}
]);
它能用,我就是这样用的
$dataProvider = new ArrayDataProvider([
'allModels' => [['name' => '0am - 6am'], ['name' => '6am - 9pm'], ['name' => '9am - 12pm'], ['name' => '12pm - 3pm'], ['name' => '3pm - 6pm']],
]);
<?= ListView::widget([
'dataProvider' => $dataProvider,
'layout' => "{items}",
'itemOptions' => ['class' => 'item', 'style' => 'margin-bottom: 5px;'],
'itemView' => function ($model, $key, $index, $widget) use ($transportRun) {
//return print_r($model, true);
return Html::a(Html::encode($model['name']), ['delivery/index', 'DeliverySearch' => ['transport_run' => $transportRun, 'timeslot' => $key]], ['class' => 'btn btn-lg btn-primary btn-block']);
},
]) ?>
谢谢,我想它可以像一个物体一样使用。现在我知道你需要像对待数组一样对待它,直到!我相信所有模型都可以是一组对象。
'allModels'=>$this->faqs, // returns array of faqs