Heyyyy
4 سال پیش توسط Heyyyy مطرح شد
1 پاسخ

گارد در لاراول

سلام دوستان

ببخشید من دارم گارد ها در لاراول رو یاد میگیرم ولی از هر جهتی که نگاه میکنم با استفاده از میدلور راحت ترم اما نمیدونم آیا میتونم همیشه از میدلور ها به جای گارد استفاده کنم یا ناچارم بعضی از بخش های پروژه رو با گارد بزنم

مرسی از همگی

@hesammousavi
@ali.bayat


ثبت پرسش جدید
Armin Rahmati
@arminrahmati999 4 سال پیش آپدیت شد
4

سلام خدمت شما.
guard: فرض کنید برای احراز هویت میخواین از چند جدول استفاده کنید، مثلا ادمین و نویسنده. حالا داخل مدل های مربوطه باید واسشون گارد هم تعریف کنین. به صورت زیر:

protected $guard = 'admin';
protected $guard = 'writer';

بعد به مسیر زیر برید:

config/auth.php

و گاردها رو تعریف کنید.

'admin' => [ 
   'driver' => 'session',
   'provider' => 'admins',
],
'writer' => [ 
   'driver' => 'session',
   'provider' => 'writers',
],

middleware: حالا باید داخل middleware ادمین خود به صورت زیر عمل کنید.

public function handle($request, Closure $next)
{
    if (!auth('admin')->check()) {
        return 'admin';
    }
    return $next($request);
}

middleware نویسنده:

public function handle($request, Closure $next)
{
    if (!auth('writer')->check()) {
        return 'writer';
    }
    return $next($request);
}

همچنین روت هاتونو باید به این صورت تعریف کنید.

Route::group(['middleware' => 'auth.admin'], function () {

});

Route::group(['middleware' => 'auth.writer'], function () {

});

و برای مثال فرض کنید شما میخواین عمل logout کردن رو انجام بدین که برای اینکار باید guard مربوطه رو صدا بزنین.

public function logoutAdmin(Request $request)
{
    auth('admin')->logout();
}
public function logoutWriter(Request $request)
{
    auth('writer')->logout();
}

امیدوارم مفید بوده باشه.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام