⏳۵۰٪ تخفیف فقط تا پایان جشنواره؛ بعدش همه‌چیز به قیمت قبل برمی‌گرده!

مشاهده دوره‌ها
ثانیه
دقیقه
ساعت
روز
راکت
حل شده

Target class CheckRole does not exist

10 پاسخ
ثبت پرسش جدید

پاسخ‌ها

10
فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

بهترین پاسخ

@morteza14
خب شما میدلور رو داخل روت های تکی ثبت کردید و الان داری روی گروهی از روت ها امتحان میکنی .
اول میدلور رو فقط روی یه روت تکی تست کن اگر مشکلی نبود بعد داخل kernel بخش group ثبتش کن و بعد به همین صورتی ک نوشتی استفاده کن ، الان اون میدولر رو از گروه بردار و فقط روی یه روت بزار

Morteza Khodarahmi
Morteza Khodarahmi
@mrkhodarahmii

تخصص: Backend Developer

سورس checkrole رو قرار بدین لطفا

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

@morteza14
سلام ، یا شما اسم مدل رو اشتباه نوشتید یا این مدل رو نساختید

شاید پاسخ شما همین‌جا باشد

Morteza14
Morteza14
@morteza14

تخصص: برنامه نویس لاراول

من مدل نساختم
middleware ساختم
@eniack

Morteza14
Morteza14
@morteza14

تخصص: برنامه نویس لاراول


<?php

namespace App\Http\Middleware;

use Closure;

class CheckRole
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (auth()->check() && auth()->user()->role == 1) {
            return $next($request);
        }

        return redirect(route('home'));
    }
}

@mrkhodarahmii

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

@morteza14
و این میدلور خودتون رو ثبت کردید داخل اپلیکیشن؟
داخل فایل kernel.php لیست میدلور های برنامه هست ، با توجه به این ک اون میدلور میخواد کجا اجرا بشه باید ثبتش کنید مثلا روی روت ها باید اجرا بشه داخل بخش protected $routeMiddleware اضافش کنید

Morteza Khodarahmi
Morteza Khodarahmi
@mrkhodarahmii

تخصص: Backend Developer

همینطور که فرشید گفت شما باید Middlewareرو به kernel.php معرفی کنید که بتونید ازش استفاده کنید.اگر بازم موفق نشدید یه نگاه به این لینک بندازید
https://laravel.com/docs/8.x/middleware#global-middleware

Morteza14
Morteza14
@morteza14

تخصص: برنامه نویس لاراول

protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        'checkrole' => \App\http\Middleware\CheckRole::class,
    ];

توضیح تصویر رو وارد کنید

use App\Http\Controllers;
use App\http\Middleware\CheckRole;
use Illuminate\Support\Facades\Auth;

Auth::routes();
Auth::routes(['verify' => 'true']);
Route::get('/', 'front\HomeController@index')->name('home');

Route::prefix('admin')->middleware(CheckRole::class)->group(function () {
    Route::get('/', 'back\AdminController@index')->name('admin.index');
    Route::get('/users', 'back\UserController@index')->name('admin.users');
    Route::get('/profile/{user}', 'back\UserController@edit')->name('admin.profile');
    Route::post('/profileupdate/{user}', 'back\UserController@update')->name('admin.profileupdate');
    Route::get('/users/delete/{user}', 'back\UserController@destroy')->name('admin.user.delete');
    Route::get('/users/status/{user}', 'back\UserController@updatestatus')->name('admin.user.status');
});

@eniack
@ali.bayat
@hesammousavi

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

اگه کلاس رو به صورت دستی ساختید با یه بار دستور
Composer dump-autoload رو وارد کنید

Morteza14
Morteza14
@morteza14

تخصص: برنامه نویس لاراول

فقط یه مشکل پیش میاد اینه که صفحه اصلی نمایش داده نمیشه
@eniack

This page isn’t workingmorteza14.ir redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS

این خطارو میده

اینم روت صفحه اصلی

Route::get('/', 'front\HomeController@index')->name('home');
Auth::routes();
Auth::routes(['verify' => 'true']);

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

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