BadassRolf
@BadassRolf

Как передать данные в yii2?

Как передать данные из web.php компонента, например,
'components' => [
   'user' => [
            'class' => 'register\setUser',
            'username' => 'login',
            'password' => 'password_user',
        ]
]


Как все это передать в класс setUser?
  • Вопрос задан
  • 589 просмотров
Решения вопроса 1
Decadal
@Decadal
Сначала загляните на ссылку Сервис-локатор
По этому принципу работают конфиги. Данные из конфигов передаются в конструкторы при помощи конфигурационных объектов.
А потом - скажите, это у вас такой странный пример, чтобы показать, какие данные вы хотите передать, или вы серьёзно собираетесь использовать такой компонент user?
Как минимум, логин-пасс тестового юзера должны храниться хотя бы в local-файле, потому что локально у вас может быть один username-password, а на продакшене - другой.

И вот эта ссылка - подробнее о том, как передавать данные в компоненты
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Относительно логина и стандартного компонента User все просто:
Yii::$app->user->identity->login
Но не из конфига же это задавать. Вообще если в Вашем классе есть публичная переменная
public $moyaHren;
а в конфиге она определена:
'components' => [
   'user' => [
            'class' => 'register\setUser',
            'moyaHren' => 'балалайка',
        ]
]

то не кто Вам не помешает получить ее так:
echo Yii::$app->user->moyaHren;
Я Вам больше скажу, Вы можете сделать в этом классе метод:
public $moyaHren;

public function getChiyaOna($my='моя',$color="зеленовая"){
  return $my . ' ' . $color . ' ' . $this->moyaHren;
}

и получить
echo Yii::$app->user->getChiyaOna('его');
// получите "его зеленовая балалайка"
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы