@kat-vetal

Из вьюхи получить доступ к классу и вытянуть атрибуты?

есть класс User в котором есть метод
public function attributeLabels()
    {
        return $this->commonAttributesLabel() + [
            'username'                  => $this->t('', 'Логин'),
            'first_name'                => $this->t('', 'Имя'),
            'last_name'                 => $this->t('', 'Фамилия'),
            'second_name'               => $this->t('', 'Отчество'),
             ];
    }

Как мне из вьюхи получить допустим Имя?

Дополняю:

у меня есть
object(stdClass)[593]
  public 'user' => 
    object(stdClass)[594]
      public 'type' => string 'class' (length=5)
      public 'methodTitle' => string 'modelTitle' (length=10)
      public 'class' => string '\gm\models\users\tables\Users' (length=30)
      public 'fields' => 
        object(stdClass)[595]
          public 'username' => string 'attribute' (length=9)
          public 'first_name' => string 'attribute' (length=9)
          public 'last_name' => string 'attribute' (length=9)
          public 'second_name' => string 'attribute' (length=9)


а мне необходимо в поле вывести
$user['first_name'] = Имя;
  • Вопрос задан
  • 151 просмотр
Решения вопроса 3
qonand
@qonand
Software Engineer
с помощью метода getAttributeLabel(), например:
$model->getAttributeLabel('username');
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Из вьюхи получить доступ к классу

передать его экземпляр из контролера во вью, как обычно.
контроллер:
public function actionView($id)
    {
        return $this->render('view', [
            'model' => Mymodel::findOne($id); //вот тут передаем класс во вью
        ]);
    }

вью:
$attr = $model->getAttributes(); //обращаемся к методу класса и получаем аттрибуты
print_r($attr); //выводим дабы посмотреть что же там за атрибуты


Как мне из вьюхи получить допустим Имя?

Чье имя? Ваше? Имя класса? Имя атрибута? Имя пользователя?

а мне необходимо в поле вывести
$user['first_name'] = Имя;

Это не вывод а присваивание, но если нужно вывести значения атрибута first_name, то так:
echo $user->first_name;
Ответ написан
@kat-vetal Автор вопроса
Спасибо разобрался, все как оказалось довольно просто, вот оно решение

$n = new \gm\models\users\tables\Users; 
$n->getAttributeLabel('first_name');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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