Доброго дня. Есть два контроллера - comments и feedback.
У обоих есть поле user_id. Как подставить Yii::$app->user->id если юзер авторизован? Если юзер не авторизован, то user_id=0 - считается анонимным.
REST / USER ID
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: REST / USER ID
Надо засунуть Yii::$app->user->id в user_id текущего контроллера?
Код: Выделить всё
class MyController extends Controller
{
public function init()
{
if (!Yii::$app->user->isGuest) {
$this->user_id = Yii::$app->user->id;
}
}
}
Нравится Yii? Давайте сделаем его лучше!.
Re: REST / USER ID
Прошу прощения за неточность, на ночь глядя криво объяснил.
Есть две модели и два контроллера - COMMENTS и FEEDBACK - это комментарии и запросы от пользователей (могут быть анонимными).
Структура схожая - user_id, text (id пользователя и текст сообщения соответственно).
В соответствии с документацией action create срабатывает если приходит POST запрос - предположим, авторизованный пользователь отправляет комментарий методом POST - срабатывает action create. Как сохранить комментарий с надлежащим user id? Необходимо переопределять метод create, заменив $_POST['user_id']?
Есть две модели и два контроллера - COMMENTS и FEEDBACK - это комментарии и запросы от пользователей (могут быть анонимными).
Структура схожая - user_id, text (id пользователя и текст сообщения соответственно).
В соответствии с документацией action create срабатывает если приходит POST запрос - предположим, авторизованный пользователь отправляет комментарий методом POST - срабатывает action create. Как сохранить комментарий с надлежащим user id? Необходимо переопределять метод create, заменив $_POST['user_id']?
Re: REST / USER ID
парент::инит
Re: REST / USER ID
я бы описал в beforeSave() ваших моделейa.k. писал(а):Прошу прощения за неточность, на ночь глядя криво объяснил.
Есть две модели и два контроллера - COMMENTS и FEEDBACK - это комментарии и запросы от пользователей (могут быть анонимными).
Структура схожая - user_id, text (id пользователя и текст сообщения соответственно).
В соответствии с документацией action create срабатывает если приходит POST запрос - предположим, авторизованный пользователь отправляет комментарий методом POST - срабатывает action create. Как сохранить комментарий с надлежащим user id? Необходимо переопределять метод create, заменив $_POST['user_id']?
Код: Выделить всё
public function beforeSave($insert)
{
if (!$this->user_id && Yii::$app->user->identity) $this->user_id = Yii::$app->user->identity->id;
return parent::beforeSave($insert);
}
Код: Выделить всё
public function beforeSave($insert)
{
if (!$this->user_id) $this->user_id = Yii::$app->user->identity['id'];
return parent::beforeSave($insert);
}
Re: REST / USER ID
Спасибо за помощь, разобрался.
Re: REST / USER ID
Как можно разрешить анонимным пользователям использовать протокол? Есть метод который сразу в голову пришел - создать пользователя Anonymous в базе, задать ему логин пароль и обращаться с соответствующим access-token, но данное решение по-моему ужасно топорное.
sajid
Re: REST / USER ID
убрать аутентификацию для этого экшена