در این جلسه به استفاده از middleware برای سطح دسترسی پروژه فروشگاه اینترنتی با لاراول می پردازیم.
دوستان دقت کنید که توی کنترولرهای 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
pouya gh
یک مشکل عمده اینه که پرمیژنها از نقش به کاربر ارث نمیرسه.
جدول role_has_permissions مقداردهی نمیشه و syncPermissions یا givePermissionTo فقط جدول model_has_permissions رو آپدیت میکنند.
این در واقع باعث میشه نقشها کاربردی نداشته باشند.
من ورژن 2 این پکیج رو تو یه پروژه قدیمی پیادهسازی کرده بودم و تقریبا همین کدهایی که شما برای RoleController نوشتی توی ورژن 2 جدول role_has_permissions رو آپدیت میکنند. مشکل از ورژن 4 هست؟
علی شیخ
1 سال پیش
سلام وقت بخیر.
بله درست میفرمایید اما شما role را دارید و امده از model_has_permissions استفاده کرده که polymorphic هست.