سلام وقتتون بخیر
من پروژه لاراولی دارم که بردم رو سرور و ران هستش
مشکل من مربوط به دیتابیس permission هستش ک داخل فایل app/providers/authserviceprovider.php
ما داخل این فایل میایم چک میکنیم ک کاربر دسترسی به اون بخش رو داره یا نه
foreach (\App\Models\Permission::all() as $permission) {
Gate::define($permission->name, function ($user) use ($permission) {
return $user->hasPermission($permission);
});
}
داخل لوکال اوکی هست ولی تو سرور به این ارور برخوردم
شما نیازی ندارید به تعداد پرمیشن هایی که دارید گیت تعریف کنید!
به شکل زیر میتونید برای خودتون گیت تعریف کنید و در روت 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) دسترسی دارید.
ممنونم بابت پاسختون من دارم api کار میکنم
این روشی ک من استفاده کردم اینه ک داخل کنترلرم تو متود
__construct امدم برای هر متود میدلور مرتبط باهاش رو ساختم
مثل کد شما فقط با این تفاوت ک شما تو فایل روت امدید میدل ور رو ست کردید براش
من تو api از @can نمیتونم استفاده کنم
و اینکه من تو فایل
authserviceprovider
امدم اتوماتیک اسم اون گیت رو از طریق اون
foreach گرفتم
اینکه شما کدش رو فرستاید برای یک دسترسی هست ک چک میکنه ک کاربر دسترسی داره یا نه
@aliqadimi19988
سلام
1- نسخه ی php روی سرور رو بررسی کن که با نسخه php لاراول شما همخوانی داشته باشد (php 7.4)
2- مطمئن شو که اکستنشن php_pdo_mysql.dll روی سرور شما فعال باشه
این لینک رو مطالعه کن
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟