@outplayed

Как правильно добавить user_id в базу при использовании Sentinel?

В связи с тем, что базовый класс аутентификации не используется, а используется Sentinel, мне приходится собственноручно указывать user_id в запросе, который я возвращаю функцией Sentinel::getUser()->id.

$post = new Posts($request->all());
        array_add($post, 'user_id', Sentinel::getUser()->id)->save();
return redirect ('/');


Как правильно добавить пост, не повторяя указанный код каждый раз? Желательно без указания его в контроллере вообще, просто через $request->all(). При использовании внешного ключа, фреймворк позволяет это делать "из коробки" при указании hasMany/belongTo зависимостей одной строчкой.

Спасибо.
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
another_dream
@another_dream
Backend-разработчик, Laravel/ZF2/Yii2
Точно так же создавай в модели User отношение для Post. Получится что-то вроде:
$post = Sentinel::getUser()->posts()-save($request->all());
return redirect ('/');

Возможно, что Сентинель не настроен и используется класс EloquentUser вместо User, в котором и определено отношение с Posts.
В таком случае нужно в конфиге сентинеля изменить User класс на свой и расширить его от EloquentUser. Подробно - https://github.com/cartalyst/sentinel/wiki/Extendi...

Читать тут: https://laravel.com/docs/5.1/eloquent#inserting-re...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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