3
ArrayDataProvider를 사용하여 listView를 채우기 위해 사용하려고합니다. 그러나 dataProvider는 객체가 아니라 배열로 구성됩니다. 모델의 범주가 다른 테이블의 해당 ID에 해당하는 이름이 필요한 ID이기 때문에이 문제가 발생했습니다. 따라서 id는 해당 이름 인 Array를 만들었습니다.ArrayDataProvider를 ActiveDataProvider로 사용할 수 있습니까?
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]));
}
]);
감사 할 수 있어야, 나는 그것이 객체처럼 사용할 수 있다고 생각. 이제는 배열처럼 다루어야한다는 것을 알고 있습니다. – Wijnand
allModels는 객체의 배열 일 수 있다고 생각합니다. –