php - para - yii framework+ejemplos
Yii2 renderAjax anidado Listview (1)
en realidad, la lista de elementos de vista no tiene que acceder a las variables externas que se han enviado a través del widget. Sin embargo, si tiene que usar la variable $dataProvider
en su archivo de vista interna, intente utilizar invocable para mostrar elementos en su vista de lista.
algo como esto:
`` `
echo ListView::widget([
''dataProvider'' => $dataProvider,
''itemView'' => function ($model, $key, $index, $widget) {
return $this->renderAjax(''items'', [
''dataProvider'' => $widget->dataProvider,
]);
},
''options'' => [''class'' => ''list-view-post''],
''summary'' => '''',
''emptyText'' => '''',
]);
`` `
más información aquí
http://www.yiiframework.com/doc-2.0/yii-widgets-listview.html# $ itemView-detail
Estoy tratando de mostrar la lista por ajax, pero me está dando el siguiente error:
Exception (Invalid Configuration) 'yii/base/InvalidConfigException' with message '
;The "dataProvider" property must be set.
Controlador:
public function actionLoadListviewAjax()
{
$dataProvider = // call to a function which returns ArrayDataProvider
return $this->renderAjax(''myview'', [ ''dataProvider'' => $dataProvider ]);
}
Ver:
echo ListView::widget([
''dataProvider'' => $dataProvider,
''itemView'' => ''items'',
''options'' => [''class'' => ''list-view-post''],
''summary'' => '''',
''emptyText'' => '''',
]);
$ dataProvder:
<pre>yii/data/ArrayDataProvider Object
(
[key] =>
[allModels] => Array
(
[0] => Array
(
[RecommendationCategory] =>
[ID] => 37
[GUID] =>
[Title] => test
[WallPostTypeID] => 1
[RecommendationCategoryID] => 0
[CommentsJSON] =>
[TotalComments] =>
[PostedMessage] => test
[FirstName] => test
[LastName] => test
[ProfileImagePath] => Lighthouse.jpg
[AddedOn] => 2015-07-18 15:14:06
[ImagePath] =>
[CommentProfileImagePath] =>
[IsSubscribe] => 1
)
)
[id] =>
[_sort:yii/data/BaseDataProvider:private] =>
[_pagination:yii/data/BaseDataProvider:private] =>
[_keys:yii/data/BaseDataProvider:private] =>
[_models:yii/data/BaseDataProvider:private] =>
[_totalCount:yii/data/BaseDataProvider:private] =>
[_events:yii/base/Component:private] => Array
(
)
[_behaviors:yii/base/Component:private] =>
)
Intenté renderPartial también, pero sigue siendo el mismo error. ¿Alguna idea de por qué está dando la excepción?
Actualizar:
En mis elementos del archivo itemView, tengo otra vista de lista para la que se está dando la excepción.