Guards
Guard classes allow to perform actions such as request checking, filtering, redirection etc. conveniently before executing a controller method. It encapsulates these filtering logic, and as such, helps to perform actions such as authentication or access control while called, without repeating codes in different controller classes.
<?php
namespace App\Http\Guards;
use Base\Request;
use Base\BaseController as base;
class CheckGuest
{
public function __construct()
{
$request = new Request();
if($request->auth()){
base::redirect('home');
}
}
}
Guard classes are defined in app/Http/Guards folder. Below is an example of a guard class that checks whether a user is authenticated, and if so, redirects him to home page, thus preventing him from accessing the function.
This guard can be called within a controller method like below-
$this->guard('CheckGuest');