Intereting Posts
Как построить дерево / вложенный массив «дочерний родительский элемент» из базы данных? PHP ODBC не может печатать китайский для MS Access, но COM может Какую учетную запись пользователя использует IIS 8.5, когда пул приложений использует «ApplicationPoolIdentity»? Доктрина Symfony Cache / orm / Proxies не открыла поток /Proxy/AbstractProxyFactory.php в строке 209 Использовать utf8 или нет – проблема с кодировкой символов MySQL и PHP Снимок экрана с div с html2canvas. Отправлено в php, сохранено: поврежденное изображение Имя пользователя mod rewrite Что делает метод `close ()` выражения Mysqli? Как выполнить сценарий оболочки PHP как действие Automator в Mac OS X загружать большие файлы с помощью php, apache Реализовать свойства singleton: статические классы или переменные статического метода? Zend Framework 2 – Формы аннотаций и Doctrine2 – Обрезаемая фатальная ошибка – ObjectManager session_regenerate_id (true) не работает Статические свойства PHP, Наследование и ключевое слово self PHP cURL: максимальная длина на CURLOPT_USERPWD?

Yii2 ListView и датапровайдер

Какие данные должны быть отнесены к датапровайдеру?

В моем контроллере:

public function actionIndex() { $searchModel = new UserSearch(); $dataProvider = $searchModel->search( Yii::$app->request->queryParams ); //other stuff and sending array of params to view 

в представлении:

 echo ListView::widget( [ 'dataProvider' => $dataProvider, ] ); 

но я получил только id`s:

введите описание изображения здесь

И если я установил один вид, например:

 'itemView' => '_single', 

как отправить данные в _single.php?

Я имею в виду – нужен шаблон по умолчанию для элементов списка просмотра, таких как GridView:

 GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', 'username', 'email:email', 'password', 'role', //.... 

И тогда я получил идеальную сетку:

введите описание изображения здесь

Контроллер – SiteController.php

 <?php // Yii2 Listview Example : by Songwut Kanchanakosai, Thailand. use common\models\Members; use common\models\SearchMembers; ... public function actionIndex() { $searchModel = new SearchMembers(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); ?> 

Просмотреть (1) – index.php

 <?php use yii\widgets\ListView; ... echo ListView::widget( [ 'dataProvider' => $dataProvider, 'itemView' => '_item', ] ); ?> 

Просмотр (2) – _item.php

 <?php use yii\helpers\Html; ?> <?=$model->name;?> <?=$model->age;?> <?=$model->mobile;?> 

Пример Результат:

 Songwut 36 +668-3949-5153 Prawee 41 +668-7323-2334 Kosol 32 +668-8014-0165 Utehn 39 +668-7874-5643 

how send data to _single.php ? Вот как, используйте $viewParams

$ viewParams public property array $ viewParams = []

Дополнительные параметры, которые будут переданы в $ itemView при его рендеринге. Это свойство используется только тогда, когда $ itemView представляет собой строку, представляющую имя представления.

 echo ListView::widget( [ 'dataProvider' => $dataProvider, 'viewParams'=>['name'=>'My Name is Stefano'], //acccessed in view as $name with value 'My Name is Stefano' ] ); 

в официальных документах http://www.yiiframework.com/doc-2.0/yii-widgets-listview.html# $ itemView-detail

$ itemView public property

Имя представления для рендеринга каждого элемента данных или обратный вызов (например, анонимная функция) для рендеринга каждого элемента данных. Если он задает имя вида, в представлении будут доступны следующие переменные:

$ модель: смешанная модель данных

$ key: mixed, ключевое значение, связанное с элементом данных

$ index: integer, нулевой индекс элемента данных в массиве items, возвращаемом $ dataProvider.

$ widget: ListView, этот экземпляр виджета

Поэтому ваши данные модели пользователя должны быть доступны в _single.php как $ model-> имя пользователя

Поэтому я могу использовать Detail View в _single.php, я думаю:

 DetailView::widget([ 'model' => $model, 'attributes' => [ 'id', 'username', 'email:email', //....