Skip to main content

Custom Middleware

1) php artisan make:middleware AuthorMiddleware

2) Go to author middleware and write:

 public function handle($request, Closure $next)
    {
        // YOUR LOGIC TO HANDLE AUTHENTICATION. My Example: 
        $user = $request->user();
        if($user->role_id === 1 || $user->role_id === 2){
            return $next($request);
        }
        return redirect('/');
    }

3) Now we need to register this is kernel.php like this:

'author' => \App\Http\Middleware\AuthorMiddleware::class,

4) Now go to your controller and write:

public function __construct(){
        $this->middleware('author',['only' => ['create','store','edit','update']]);
        $this->middleware('admin',['only' => ['delete','trash','restore','permanentDelete']]);
    }

you can use either only or except. Only will take the listed functions in the [] . and Except will
take every function except [].

Comments

Popular posts from this blog

SQL: sneak peek

show databases; use mysql; show tables; select * from component; describe component; create database sql_intro; show databases; use sql_intro; create table emp_details (Name varchar(25), Age int, gender char(1), doj date, city varchar(15), salary float); describe emp_details; insert into emp_details  values("Jimmy",35,"M","2005-05-30","Chicago",70000), ("Shane",30,"M","1999-06-25","Seattle",55000), ("Marry",28,"F","2009-03-10","Boston",62000), ("Dwayne",37,"M", "2011-07-12","Austin", 57000), ("Sara",32,"F","2017-10-27","New York",72000), ("Ammy",35,"F","2014-12-20","Seattle",80000); select * from emp_details; select distinct city from emp_details; select count(name) as count_name from emp_details; select avg(salary) from emp_details; select name, age...

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists

While migration to db you often face/might face this error which says the table name that you wrote is already exists in the database. so in that case one of the solutions that you can try is wrapping up your create schema with this: if(!Schema::hasTable('users')){ } Example: if (! Schema :: hasTable ( 'users' )){              Schema :: create ( 'users' ,  function  ( Blueprint   $table ) {                  $table -> bigIncrements ( 'id' );                  $table -> bigInteger ( 'role_id' )-> unsigned ()-> nullable ();                  $table -> foreign ( ' role_id ' )-> references ( 'id' )-> on ( 'roles' ) ...