یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
AliQadimi
2 سال پیش توسط AliQadimi مطرح شد
3 پاسخ

permission در لاراول

سلام وقتتون بخیر
من پروژه لاراولی دارم که بردم رو سرور و ران هستش
مشکل من مربوط به دیتابیس permission هستش ک داخل فایل app/providers/authserviceprovider.php
ما داخل این فایل میایم چک میکنیم ک کاربر دسترسی به اون بخش رو داره یا نه

        foreach (\App\Models\Permission::all() as $permission) {
            Gate::define($permission->name, function ($user) use ($permission) {
                return $user->hasPermission($permission);
            });
        }

داخل لوکال اوکی هست ولی تو سرور به این ارور برخوردم

 تصویر


ثبت پرسش جدید
محمدرضا افخمی
تخصص : Laravel Backend Developer
@mhmdrezafk 2 سال پیش مطرح شد
0

شما نیازی ندارید به تعداد پرمیشن هایی که دارید گیت تعریف کنید!
به شکل زیر میتونید برای خودتون گیت تعریف کنید و در روت web.php یا فایل های blade با متد @can ازشون استفاده کنید:

Gate::define('access' , function ($user , $permissionCode){
    return $user->hasPermission($permissionCode);
});

استفاده در web.php:

Route::get('/users', 'UserController@index')->name('users')->middleware('can:access,"see-users"');

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

@can('access' , 'see-users')

در کنترلر ها و مدل ها هم طبق مستندات لاراول کاملا به گیت مورد نظر (access) دسترسی دارید.


AliQadimi
تخصص : برنامه نویس
@aliqadimi19988 2 سال پیش مطرح شد
0

ممنونم بابت پاسختون من دارم api کار میکنم
این روشی ک من استفاده کردم اینه ک داخل کنترلرم تو متود
__construct امدم برای هر متود میدلور مرتبط باهاش رو ساختم
مثل کد شما فقط با این تفاوت ک شما تو فایل روت امدید میدل ور رو ست کردید براش

من تو api از @can نمیتونم استفاده کنم
و اینکه من تو فایل
authserviceprovider
امدم اتوماتیک اسم اون گیت رو از طریق اون
foreach گرفتم

اینکه شما کدش رو فرستاید برای یک دسترسی هست ک چک میکنه ک کاربر دسترسی داره یا نه


سینا خاقانی
تخصص : توسعه دهنده بک‌اند
@sina.it91 2 سال پیش مطرح شد
0

@aliqadimi19988
سلام
1- نسخه ی php روی سرور رو بررسی کن که با نسخه php لاراول شما همخوانی داشته باشد (php 7.4)
2- مطمئن شو که اکستنشن php_pdo_mysql.dll روی سرور شما فعال باشه
این لینک رو مطالعه کن


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام