Страница 1 из 1

Передача информации о текущем пользователе

Добавлено: 2018.01.13, 15:29
Tommi
Добрый день.
Как считаете, любую информацию о текущем пользователе, такую в т.ч. как Yii::$app->user->id, можно только из контроллера передавать в нижележащие слои. Или можно и как то по другому исхитриться?
Надо для банальных вещей, автора поста. То что раньше, если без слоев, просто в AR модель на before insert добавилось бы через Yii::$app->user->id.

Re: Передача информации о текущем пользователе

Добавлено: 2018.01.13, 16:39
ElisDN
Из контроллера.

Re: Передача информации о текущем пользователе

Добавлено: 2018.01.13, 19:13
Tommi
А где в вашем ElisDN/yii2-demo-shop это?
Смотрю по миграциям есть поля user_id, хотел увидеть это присваивание но в backend\controllers\shop\OrderController да и подобных в упор не вижу actionCreate

Re: Передача информации о текущем пользователе

Добавлено: 2018.01.13, 21:15
ElisDN
Заказ оформляется пользователем во frontend/controllers/shop/CheckoutController, а не админом в backend.

Re: Передача информации о текущем пользователе

Добавлено: 2018.01.19, 15:23
Tommi
Вижу. Спасибо.
А не подскажите насчет $user->can('something')
Передавать на вход сервиса что то типа:
ProfileEditService->run($user->can('admin'), $user->can('editor'), $user->can('upoalFiles'))
,где
ProfileEditService->run($is_admin, $is_editor, $allowed_upload_files)
?
Или объект $user передать, все таки с этими ->can бывает много логики хитрой накручено, так что доходит и до правил валидации в AR модели

Re: Передача информации о текущем пользователе

Добавлено: 2018.01.19, 19:08
ElisDN
Tommi писал(а): 2018.01.19, 15:23 Передавать на вход сервиса что то типа ...?
Да, передавать значения. Либо все проверки перенести в домен и передавать туда просто $userId.
Tommi писал(а): 2018.01.19, 15:23 бывает много логики хитрой накручено, так что доходит и до правил валидации в AR модели
Порой проще сделать три простые формы, чем одну универсальную с кучей if-ов.