🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ Safoora
دایرکتیو blade کار نمی‌کند
جامعه لاراول ایجاد شده در ۲۳ اردیبهشت ۱۴۰۰

سلام جناب سامی وقت بخیر بنده  directive نوشتم اما نتونستم استفاده کنم توی فایل‌های blade شناسایی نمیشد متاسفانه.. ممنون میشم راهنمایی کنید.. از لاراول 8 استفاده میکنم

سلام 

 

به چه صورت پیاده‌سازی کردید؟

مهرداد سامی ۲۳ اردیبهشت ۱۴۰۰، ۱۱:۱۳

در PermissionServiceProvider به صورت زیر نوشتم:

public function boot()
{
   Permission::all()->map(function($permission){
        \Illuminate\Support\Facades\Gate::define($permission->name,function($user) use ($permission){
            return $user->hasPermission($permission);
        });
   });
    Blade::if('role',function ($role){
        return auth()->check() &&  auth()->user()->hasRole($role);
    });
}

و در blade به صورت زیر ازش استفاده کردم:

@role('superadmin')
 <li><a href="{{route('users.index')}}">مدیریت پنل</a></li>
@endrole
Safoora ۲۴ اردیبهشت ۱۴۰۰، ۰۴:۱۶

منظورتون از اینکه توی فایل‌های Blade شناسایی نمیشه این هستش که بهتون خطا میده و یا اینکه اتفاقی نمیوفته؟

 

و موضوع دیگه اینکه داخل اون بلاکی که شرط رو تعریف کردید یک dd قرار بدید که ببینید اون اجرا میشه یا خیر، به این صورت :‌ 

 

 

 Blade::if('role',function ($role){
       dd($role);
        return auth()->check() &&  auth()->user()->hasRole($role);
    });
مهرداد سامی ۲۴ اردیبهشت ۱۴۰۰، ۰۷:۰۷