@Kurper

Как можно получить атрибуты GridView для своего виджета?

Всем привет,

Может кто-то сталкивался с такой задачей, написал свой виджет, в нем хочу использовать атрибуты таблицы GridView, но сейчас это работает вручную, то есть я передаю эти атрибуты прописывая их...

что-то типа такого:

MyWidget::widget([
attributes => ['foo', 'bar' ...]
]);

Есть ли возможность получить эти атрибуты из GridView? Хочу брать автоматом все колонки (атрибуты) что сейчас активны.
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Если ваш виджет наследуется от грида, то да. Можно получить свойство атрибутов.

Второе решение, если эти два виджета на одной странице. То можно создать переменную $attributes куда добавить общие переменные и добавить её в оба виджета.

Но более чем уверен, что этого делать вам не нужно. В первую очередь виджеты созданы для решения логических операций и виджет считается независимым. То есть достаточно передать параметры чтобы сконфигурировать виджет. Например виджет комментариев вконтакте. Иногда виджеты используют совсем не правильно делая из них не помощников, а дополнительную проблему и увязвимую часть сайта.

Иногда лучше сделать копипаст, чем гадать два дня на кофейной гуще откуда это взялось. Не стоит создавать себе проблем на ровном месте. Особенно если эти два виджета независимы друг от друга. Логику копипаста надо реализовывать не в этих виджетах, а во вне... Например, как написал выше. Или хелпер...

Стоит просто посмотреть как это реализовано в Yii2. Три виджета GridView, ListView, DetalView. Эти виджеты используют одни и те же атрибуты одной модели. Но там никто так не стал делать как вы хотите.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы