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

Обсуждаем, как правильно строить приложения
Ответить
Tommi
Сообщения: 64
Зарегистрирован: 2013.08.01, 13:44

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

Сообщение Tommi » 2018.01.13, 15:29

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


Tommi
Сообщения: 64
Зарегистрирован: 2013.08.01, 13:44

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

Сообщение Tommi » 2018.01.13, 19:13

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

Аватара пользователя
ElisDN
Сообщения: 4998
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение ElisDN » 2018.01.13, 21:15

Заказ оформляется пользователем во frontend/controllers/shop/CheckoutController, а не админом в backend.

Tommi
Сообщения: 64
Зарегистрирован: 2013.08.01, 13:44

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

Сообщение Tommi » 2018.01.19, 15:23

Вижу. Спасибо.
А не подскажите насчет $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 модели

Аватара пользователя
ElisDN
Сообщения: 4998
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение ElisDN » 2018.01.19, 19:08

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

Ответить