توضیحات

در این جلسه به استفاده از directive برای سطح دسترسی پروژه فروشگاه اینترنتی با لاراول می پردازیم.

دوستان دقت کنید که توی کنترولرهای RoleController وPermmisionController وUserController بجای اینکه کلاس Permission و Role را از App\Models\Permission و App\Models\Role بگیرید و use کنید.
باید از Spatie\Permission\Models\Permission و Spatie\Permission\Models\Role دریافت و use کنید.
پس این مقادیر در بالای کنترولرها

use App\Models\Role
use App\Models\Permission

باید به این شکل شود.

use Spatie\Permission\Models\Role
use Spatie\Permission\Models\Permission

از طرفی permmisionهای یک role یا نقش در جدول role_has_permissions ذخیره میشود، نه در جدول model_has_permissions


طراحی وب طراحی سایت پی اچ پی php شی گرایی php oop php mvc mvc پایگاه داده laravel لاراول فروشگاه_اینترنتی

مدرس دوره علی شیخ
مدت دوره 42:39:50
تعداد ویدیو 212

وضعیت دوره : کامل شده
قیمت دوره : 499,000 449,000 تومان

نظرات ارزشمند شما:

برای ارسال نظر ابتدا باید وارد سایت شوید

  • درود بر شما استاد عزیز,
    آقا من یه مشکل دارم توی این قسمت.
    وقتی یه سری پرمیژن اختصاص میدیم به یک role و همون role رو میدیم به یک کاربر, قانونا اون کاربر باید اون سری از پرمیژن ها را داشته باشه ولی اینطور نیست فقط زمانی به اون پرمیژن ها دسترسی داره که از داخل خود لیست کاربران بهش اختصاص میدیم,
    حالا من اومدم به صورت دستی از داخل دیتابیس، یه جدول دیگه هست به نام role_has_permissions و پرمیژن و از اینجا به رول مورد نظر اختصاص دادم, فقط در این صورت جواب میده و میشه از can به پرمیژن های یک رول دسترسی داد،
    این جدول و چجوری میتونم مقدار دهی کنم؟
    که وقتی رول و ایجاد میکنیم یا ویرایش میکنیم اینم مقدار دهی بشه؟
    یا اگه اشتباه هست کارم ممنون میشم راهنمایی کنید.
    ممنونم از آموزش خوبتون و وقتی که میذارید.

    • سلام وقت بخیر.
      در واقع توی کنترولر های PermissionController و RoleController و UserController ما مدل های Permission و Role را از App\Models استفاده و use کردیم بلکه باید از کتابخانه use بشه.پس توی کنترولر ها هر کجا این مدل ها را use کردیم، که به این شکل هست

      use App\Models\Role;
      
      use App\Models\Permission;

      باید به این شکل شود.
      use Spatie\Permission\Models\Role;
      
      use Spatie\Permission\Models\Permission;

  • سلام استاد خسته نباشد .
    چطور میشه با @can چندین پرمیژن واسه یک ایتم گذاشت.
    من از این مدل
    @can('create-brands|edit-brands')
    یا
    @can('create-brands' , 'edit-brands')
    استفاده کردم نشد. داکیمنتم درباهی این چیزی نگفته ولی بخش مدلور مثلا میشه از role_or_permission استفاه کرد

    • سلام وقت بخیر.
      میتونید از متد hasAnyPermission استفاده کنید توی یک if به این صورت

      
      
      @if(auth()->user()->hasAnyPermission(['edit-brands', 'create-brands']))
      .....
      @endif