Menghindari Redirect, Validasi melalui Middleware Laravel 5.3

Halo semua, saya mau tanya ini cuma mau revisi kodingan, jadi gini kan ane mau pakai sistim role dimana ada user yang bertugas menjadi sebuah peranan user dan disini kebetulan ada 3 user type yaitu guru, siswa dan staff (admin)

Nah ane pengin ada validasi melalui middleware di Laravel, tapi ternyata malahan sering error redirect dan itu karena memang ane suka redirect, nah kira-kira ada yang pernah melakukan validasi tsb di middleware dan kira-kira codingan ane diubah jadi gimana yah?

ini codingannya

<?php

namespace App\Http\Middleware;

use Closure;

use Auth;

class murid

{

    /**

     * Handle an incoming request.

     *

     * @param  \Illuminate\Http\Request  $request

     * @param  \Closure  $next

     * @return mixed

     */

    public function handle($request, Closure $next)

    {

        $user = Auth::guard('web')->check();

        $getType = Auth::guard('web')->user()->type;



        if($getType == 'S'){

            return $next($request);

        }else{

            if($user){

                $request->session()->flash('maaf','Maaf, Anda tidak bisa masuk ke halaman tersebut');

                return redirect('/siswa');

            }else{

                $request->session()->flash('maaf','Anda harus login terlebih dahulu');

                return view('xarea.index');

            }

        }

    }

}

avatar yupangestu
@yupangestu

64 Kontribusi 22 Poin

Diperbarui 7 tahun yang lalu

5 Jawaban:

metode handlenya bisa lebih simple

public function handle($request, Closure $next)
    {
      $user = $request->user();

      if($user){
        if($user->isStudent()){
          return $next($request);
        }
      }

      return redirect('/');  //sesuaikan dengan redirectnya
    }

nanti di modelnya tinggalk bikin metode isStudent() yang ngecek typenya return true kalo benar, false kalo salah

avatar hilmanski
@hilmanski

2665 Kontribusi 2131 Poin

Dipost 7 tahun yang lalu

Hai mas Hilman,

Itu untuk metode isStudent itu dapat darimana yah mas? Karena dicodingan saya ga ada metode isStudent()...

Thanks

avatar yupangestu
@yupangestu

64 Kontribusi 22 Poin

Dipost 7 tahun yang lalu

buat rolenya dengan metode relasi apa mas? many to many? atau apa?

avatar onirusama
@onirusama

265 Kontribusi 184 Poin

Dipost 7 tahun yang lalu

di modelnya, coba baca tulisan setelah kodenya

avatar hilmanski
@hilmanski

2665 Kontribusi 2131 Poin

Dipost 7 tahun yang lalu

@onirusama kebetulan saya relasinya berdasarkan status User yang User pilih ketika registrasi

@hilman oh iya, didn't see it... thank you saya akan coba dan akan kembali lagi

avatar yupangestu
@yupangestu

64 Kontribusi 22 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban