Метод user
Метод user применяется к объекту запроса
и возвращает экземпляр модели аутентифицированного
пользователя или null, если пользователь
не аутентифицирован. Метод использует текущий
охранник (guard) для определения пользователя.
Первый параметр указывает имя охранника,
который следует использовать. Если параметр
не указан, используется охранник по умолчанию.
Синтаксис
<?php
Request::user($guard);
?>
Пример
Давайте получим текущего аутентифицированного пользователя в контроллере:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppModelsUser;
class UserController extends Controller
{
public function profile(Request $request)
{
$user = $request->user();
if ($user) {
echo $user->name;
} else {
echo "User not authenticated";
}
}
}
?>
Результат выполнения кода для аутентифицированного пользователя:
"John Doe"
Пример
Давайте проверим, аутентифицирован ли пользователь,
с помощью метода user:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppModelsPost;
class PostController extends Controller
{
public function create(Request $request)
{
if ($request->user()) {
$post = new Post();
$post->title = 'New post';
$post->user_id = $request->user()->id;
$post->save();
echo "Post created successfully";
} else {
echo "You must be logged in";
}
}
}
?>
Результат выполнения кода для аутентифицированного пользователя:
"Post created successfully"
Пример
Давайте используем конкретный охранник для получения пользователя:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class ApiController extends Controller
{
public function data(Request $request)
{
$user = $request->user('api');
if ($user) {
echo $user->email;
} else {
echo "API token is invalid";
}
}
}
?>
Результат выполнения кода для пользователя с валидным API токеном:
"john@example.com"