Ответ 1
Проведя еще немного времени на Laravel 5, я могу ответить на свой вопрос:
Является ли инъекция Guard
рекомендуемым способом? Нет: если вам нужно получить доступ к Auth
в своем представлении, вы можете сделать это уже следующим образом:
@if( Auth::check() )
Current user: {{ Auth::user()->name }}
@endif
Это использует фасад Auth
. Список всех доступных фасадов находится в config/app.php
под aliases:
Что делать, если мне нужно Auth
в моем контроллере? Вводится пример экземпляра Guard
, как показано в вопросе, но вам не нужно. Вы можете использовать фасад Auth
, как это было в шаблоне:
public function index()
{
if(\Auth::check() && \Auth::user()->name === 'Don') {
// Do something
}
return view('client.index');
}
Имейте в виду, что \
необходим перед именем фасада, поскольку L5 использует пространства имен.
Я хочу иметь разрешения/роли с использованием нового механизма auth в L5: Я реализовал модуль облегченного доступа с использованием нового промежуточного программного обеспечения, он называется Laraguard. Посмотрите на Github и дайте мне знать, что вы думаете: https://github.com/cgrossde/Laraguard
ОБНОВЛЕНИЕ:. Для полноты я хочу упомянуть еще два проекта. Они предоставляют все необходимое для сохранения ролей и разрешений в БД и прекрасно работают вместе с Laraguard или сами по себе: