Yii2 gridview связанные модели

У меня есть две модели, а именно MedicineRequestEntry и MedicineRequest. MedicineRequestEntry связан с MedicineRequest через

Теперь в сеточном представлении MedicineReuestEntry я пытаюсь получить данные из модели MedicineRequest, используя отношение двумя альтернативными способами.

В этом методе я получаю значение как не установлено.
и другой метод:

В этом методе я получаю ошибку как:

Получение неизвестного свойства: app models MedicineRequestEntry :: $ data-> MedicineRequests-> is_delivered

Теперь мне нужна помощь, что я здесь делаю неправильно.
Спасибо.

Решение

Вы должны использовать функцию обратного вызова, см. гид :

У меня есть несколько таблиц с отношениями (через одну и через две), и отношения эти работают. К примеру, в модели Player есть

Когда я пишу в контроллере PlayerController

я получаю в Gridview доступ к полям из таблицы pt, если меняю getPts() на getTournaments() то могу вывести поля из tournament.

А как сделать чтобы получить все поля, из обеих таблиц? Подскажите, перечитал все руководства уже — застрял и всё.

1 ответ 1

Во первых вам нужно уточнить свой вопрос, что имеется ввиду к полям из таблицы , у вас связь hasMany, вы хотите получить к полям рельтата запроса? или все же просто к единым полям

В Yii2 связи подхватываются автоматически, на то он и магический метод геттер. В Grid view вам необходимо получать доступ к полям из связей так: пример

при наличии связи hasMany , необходимо обрабатывать список результатов к примеру через анонимную функцию

надо только посмотреть где в $data хранится массив с результатами

Разбираемся как использовать виджет GridView в своих проектах

  • Главная
  • Блог
  • Yii2 GridView — виджет таблицы данных

GridView — мощный виджет для вывода ваших данных на сайте в виде таблицы. После автоматической генерации вида модели получается что-то такое:

Читайте также:  Адаптер pci e m 2 ngff

Выглядит на странице это таблицей

1. Через свойство виджета tableOptions можно изменить класс таблицы

2. Можно задать класс отдельно для строк через свойство rowOptions. В примере ниже используется анонимная функция.

3. Можно изменить шаблон вывод gridview с помощью свойства layout

4. Свойства showHeader и showFooter — для показа заголовка и футера таблицы

5. emptyCell — для показа чего-то, если ячейки пусты

6. Для кнопок управления тоже можно редактировать template, добавлять свои кнопки или изменять вид у используемых по-умолчанию.

Можно указывать свойства для каждой собственной кнопки управления через анонимную функцию

7. Для каждого атрибута можно указать свои свойства в contentOptions. Это может быть как анонимная функция, так и провто стили.

8. Можно использовать сокращённый формат для атрибута. Будет ‘attribute:format:label’, где attribute — данные из модели, format — шаблон вывода данных ( ‘raw’ , ‘text’ , ‘html’ , ‘image’ , ‘datetime’ , ‘time’ , ‘date’ , [ ‘date’ , ‘php:Y-m-d’ ] и другие), label — заголовок столбца. В итоге, код

9. Чтобы отобразить картинку в ячейке, можно после двоеточия указать тип image у атрибута картинки, либо использовать функцию в value для более широкой настройки.

10. Cсылку вывести в GridView можно так же, указав в value для атрибута

11. Связанные модели

где getParentName() описана в соответствующей модели

12. Вывод даты и времени в GridView

13. Сделать выпадающий DropDownList в фильтре GridView

и в модели получать список категорий

Если вам мало возможностей стандартного GridView, предлагаемого разработчиками Yii, посмотрите в сторону навороченного Gridview от kartik-v.

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *