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

Ditanyakan oleh @yupangestu

64 Kontribusi 22 Poin

Login untuk menanggapi


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

Dijawab oleh @hilmanski

2166 Kontribusi 1748 Poin

Login untuk menanggapi


Hai mas Hilman, Itu untuk metode isStudent itu dapat darimana yah mas? Karena dicodingan saya ga ada metode isStudent()... Thanks
avatar yupangestu

Dijawab oleh @yupangestu

64 Kontribusi 22 Poin

Login untuk menanggapi


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

Dijawab oleh @onirusama

265 Kontribusi 179 Poin

Login untuk menanggapi


di modelnya, coba baca tulisan setelah kodenya
avatar hilmanski

Dijawab oleh @hilmanski

2166 Kontribusi 1748 Poin

Login untuk menanggapi


@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

Dijawab oleh @yupangestu

64 Kontribusi 22 Poin

Login untuk menanggapi


Login untuk gabung berdiskusi