یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام دوستان این authorize چیه تو ریکوئست ها و چرا باید همیشهtrue قرارش داد؟
سلام
کاربر د این متد برای این است که در این متد میتونیم اجازه های دسترسی رو برای یه کاربر برسی کنیم و اگه کاربری اجازه دسترسی نداشت نتونه وارد متد یا اکشنی که در این بخش براش قرار گرفته بشه.
فرض کن به یه کاربری پرمیشن ایجاد یه post داده نشده و وقتی کاربر اقدام به سابمیت کردن فرم میکنه پیش از اینکه کدهای درون متدstore اجرا بشه ابتدا مبحث اجازه دسترسی کاربر تو متد authorize برسی میشه و اگه کاربر اجازه ایجاد post رو داشت میتونه وارد متد store شده و عملیات ایجاد پست انجام بشه و در غیر اینصورت بدون این که وارد متد store بشه به کاربر خطایی با کد 403 رو نشون میده
در روتهایی که متدهاشون post یا patch هست بهترین جا برای مسئله برسی کردن اجازه دسترسی کاربر داخل متد authorize کلاس Request هست
یه نمونه کد
public function authorize()
{
if (Gate::allows('create-post')) {
return true;
} else {
return false;
}
}
سلام
اگه متود authorize برابر با false باشه اجازه دسترسی داده نمیشه و در واقع کد 403 برمیگردونه، پس برای اینکه اجازه بدیم validation انجام بشه باید متود authorize برابر با true باشه.
https://laravel.com/docs/9.x/validation
میتونید یک سری اعتبار سنجی هارو قبلش انجام بدید
مثلا یک کامنت رو میخواید برای یک محصول ثبت کنید، قبل از اینکه اصلا وارد بخش اعتبار سنجی بشه چک میکنید آیا این کاربر این محصول رو خریده اگر بله true در غیر این صورت false برگردونید یا مثال های دیگر
کلا بسته به نیاز یک true یا false بر میگردونید و از ادامه روند جلو گیری میکنید
سلام
کاربر د این متد برای این است که در این متد میتونیم اجازه های دسترسی رو برای یه کاربر برسی کنیم و اگه کاربری اجازه دسترسی نداشت نتونه وارد متد یا اکشنی که در این بخش براش قرار گرفته بشه.
فرض کن به یه کاربری پرمیشن ایجاد یه post داده نشده و وقتی کاربر اقدام به سابمیت کردن فرم میکنه پیش از اینکه کدهای درون متدstore اجرا بشه ابتدا مبحث اجازه دسترسی کاربر تو متد authorize برسی میشه و اگه کاربر اجازه ایجاد post رو داشت میتونه وارد متد store شده و عملیات ایجاد پست انجام بشه و در غیر اینصورت بدون این که وارد متد store بشه به کاربر خطایی با کد 403 رو نشون میده
در روتهایی که متدهاشون post یا patch هست بهترین جا برای مسئله برسی کردن اجازه دسترسی کاربر داخل متد authorize کلاس Request هست
یه نمونه کد
public function authorize()
{
if (Gate::allows('create-post')) {
return true;
} else {
return false;
}
}
@hosseinshirinegad98
آها ممنون متوجه شدم..بعد فقط ی سوال..چه فرقی میکنه استفاده از این روش با اینکه بدونه ریکوئست ها پرمیشن ها بررسی بشه؟یعنی از همین Gate که شما گفتید استفاده کنیم واسه دسترسی ها اما نه توی Request .
روش های متعددی وجود داره
اما دو روش اینجا آوردم
public function edit(Post $post)
{
$this->authorize('edit-post');
// or
if (Gate::denies('edit-post') {
abort(403);
}
// edit post
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟