همونطور که دوستان اشاره کردن در صورتی که طبق آموزشهای استاد جلو بریم با این مشکل برمیخوریم که در حالت پیشفرض تمام متدهای درون VideoPolicy.php به ما false برمیگردونن .
من خیلی راجع بهش سرچ کردم و مثل اینکه خیلیها به این مشکل برخوردن و دوتا راه حل براش ارائه دادن که برای من فقط یکیش کار کرد
راه حل اول که خودم ازش جواب نگرفتم از این رفرنس بود:
https://github.com/laravel/framework/issues/22847#issuecomment-521308861
راه حل دوم این هست که در تمام متدهایی که در VideoPolicy.php خالی هستن ما
return true:
بنویسیم .
ولی حتی بعد از نوشتن این مورد هم اگر ما از وبسایت log out بکنیم بازم اجازه دسترسی به هیچکدوم از متدها بهمون داده نمیشه و حتی ممکنه صفحه index هم برامون باز نشه و برای حل این مشکل کافیه اجازه بدیم که متدهای درون VideoPolicy قابلیت null شدن هم داشته باشن, برای مثال:
public function view(User $user= null, Video $video= null){ return true: }
همونطور که فقط یک =null باید به همه متدها اضافه کنیم و اگر در متدی حتما از user استفاده میشد و نمیشد null باشه مثل متد update کافیه قبلش چک بکنید که آیا شخص log in کرده یا خیر با این صورت :
public function update(User $user= null, Video $video= null) { if (Auth::check($user)) { return $user->id == $video->user_id ? Response::allow() : Response::deny('you are not authorized'); } return false; }