Класс User
Класс User наследуется от Authenticatable и реализует интерфейс AuthenticatableContract.
Он содержит стандартные поля для аутентификации: 'name', 'email', 'password', 'remember_token',
а также временные метки 'created_at' и 'updated_at'.
Модель используется фасадом Auth для получения информации о текущем пользователе.
Синтаксис
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $fillable = [
'name',
'email',
'password',
];
protected $hidden = [
'password',
'remember_token',
];
}
?>
Пример
Давайте получим текущего аутентифицированного пользователя и выведем его имя:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
public function show()
{
$user = Auth::user();
echo $user->name;
}
}
?>
Результат выполнения кода:
"John Doe"
Пример
Давайте проверим, имеет ли пользователь право на выполнение действия с помощью метода can:
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Support\Facades\Auth;
class PostController extends Controller
{
public function update($id)
{
$post = Post::find($id);
$user = Auth::user();
if ($user->can('update', $post)) {
echo "User can update post";
} else {
echo "User cannot update post";
}
}
}
?>
Результат выполнения кода:
"User can update post"
Пример
Давайте проверим, подтверждён ли email пользователя с помощью метода hasVerifiedEmail:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class ProfileController extends Controller
{
public function verify()
{
$user = Auth::user();
if ($user->hasVerifiedEmail()) {
echo "Email is verified";
} else {
echo "Email is not verified";
}
}
}
?>
Результат выполнения кода:
"Email is verified"
Пример
Давайте отметим email пользователя как подтверждённый с помощью метода markEmailAsVerified:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class EmailController extends Controller
{
public function confirm()
{
$user = Auth::user();
if (!$user->hasVerifiedEmail()) {
$user->markEmailAsVerified();
echo "Email marked as verified";
} else {
echo "Email already verified";
}
}
}
?>
Результат выполнения кода:
"Email marked as verified"
Пример
Давайте отправим уведомление пользователю с помощью метода notify:
<?php
namespace App\Http\Controllers;
use App\Notifications\WelcomeNotification;
use Illuminate\Support\Facades\Auth;
class NotificationController extends Controller
{
public function send()
{
$user = Auth::user();
$user->notify(new WelcomeNotification());
echo "Notification sent";
}
}
?>
Результат выполнения кода:
"Notification sent"