🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ ورنا فاطمی
دایرکتیو 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
ورنا فاطمی ۲۴ اردیبهشت ۱۴۰۰، ۰۴:۱۶

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

 

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

 

 

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