#php #laravel
#php #laravel
Вопрос:
Возможно ли, чтобы в контроллерах было меньше шаблонов, когда текущий пользователь должен быть известен?
class FooController extends Controller
{
function index(Request $request) {
$user = Auth::user(); // <------
return Foo::where('user_id', $user->id)->get()->toArray();
}
}
Возможно ли это получить $user
непосредственно из внедрения зависимостей?
Ответ №1:
Вы можете сделать это из Request
класса
$user = $request->user();
ИЛИ — использование вспомогательных функций
$user = auth()->user();
Комментарии:
1. Разве это не просто альтернатива тому, что они уже делают, а не вопрос об автоматическом получении пользователя?
2. @NigelRen Действительно
3. Извините, если я неправильно понял ваш вопрос, вы можете выполнить вспомогательную функцию, чтобы автоматически получить текущего пользователя, например
user()
, в случае просмотров, которые вы можете использовать вспомогательный метод, который вы создали, или использоватьview composers
для обмена текущей аутентификацией со всеми представлениями.
Ответ №2:
в Controller.php
вы можете добавить защищенное свойство
protected $user;
public function __construct()
{
$this->user = auth()->user ?? null;
}
затем во всех компонентах вы можете сделать $this->user