1. Masuk ke appserviceprovider lalu massukkan code ini :
use Illuminate\Database\Eloquent\Builder;
// Untuk Mempermudah Filter user akses Global
Builder::macro('filterUserakses', function ($model, $column, $value1, $value2) {
// User login sebagai apa
$cekUser = auth()->user();
if ($cekUser->level === 'superadmin') {
// Kondisi untuk superadmin
if (!empty($value1)) {
return $this->where($model . '.' . $column, $value1);
}
} else {
// Kondisi untuk level selain superadmin
return $this->where($model . '.' . $column, $cekUser->$value2);
}
return $this;
});
2. Penerapan pada variable :
Penjelasan :
// parameter filterAkses user (1. Model(string), 2. Colom(string), 3. Value superadmin(variable), 4. Value selain superadmin(string))
contoh :
->filterUserakses('kelas', 'sekolah_idsekolah', $this->selectedSekolah, 'sekolah_idsekolah')