Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

maniix's avatar

Some help please.

Okay so we all may have done this in our controllers right:

public function __construct(){
    $this->middleware('checkOwnerOfPost')->only(['editPost']);
}

Now that I've migrated my project to the Laravel 5.3, I get this bloody error.

ReflectionException in Container.php line 734:
Class checkOwnerOfPost does not exist
in Container.php line 734
at ReflectionClass->__construct('checkOwnerOfPost') in Container.php line 734
at Container->build('checkOwnerOfPost', array()) in Container.php line 629
at Container->make('checkOwnerOfPost', array()) in Application.php line 699
at Application->make('checkOwnerOfPost') in Pipeline.php line 127
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in SubstituteBindings.php line 41
at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in Authenticate.php line 43
at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in VerifyCsrfToken.php line 64
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in Pipeline.php line 104
at Pipeline->then(object(Closure)) in Router.php line 644
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 618
at Router->dispatchToRoute(object(Request)) in Router.php line 596
at Router->dispatch(object(Request)) in Kernel.php line 267
at Kernel->Illuminate\Foundation\Http{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing{closure}(object(Request)) in Pipeline.php line 104
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53
at require_once('C:\xampp\htdocs\Research\public\index.php') in server.php line 21

Somebody tell me wtf is did I do wrong this time.

0 likes
12 replies
Orgil's avatar

It says :Class my custom middleware does not exist

maniix's avatar

Yeah but I have already created that middleware in app\Http\Middleware directory. :3

maniix's avatar

I have updated my first post.

Orgil's avatar

Did you create your Middleware by Artisan ?

Orgil's avatar

If you created your Middleware manually, You have to declare

namespace App\Http\Middleware;

in your middleware class

maniix's avatar

Yeah I've done all of that, and dude it's driving my crazy!

maniix's avatar

This is the middleware:

<?php

namespace App\Http\Middleware;

use Closure;
use App\post;
use Auth;
class checkOwnerOfPost
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $post = post::findOrFail($request->id);
        if($post->user_id !== Auth::id())
        {
            return redirect()->back()->with('error', 'You cannot edit posts of others!');
        }
        return $next($request);
    }
}
Sobak's avatar

Have you registered your middleware?

leolam2005's avatar

registered your middleware in kernel?


    protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,

    //your middleware
    'checkOwnerOfPost' => \App\Http\Middleware\checkOwnerOfPost::class,
    ];

maniix's avatar

@leolam2005 Wow. I did NOT know you need to register your custom middlewares now. Before I only create them with artisan, then do the constructor thing on the controller and then it's done. Thanks though.

leolam2005's avatar

@maniix

Yes you need to register

class PagesController extends Controller
{
    public function __construct() {
        $this->middleware('RedirectIfNotSelf');
    }

Error will be

ReflectionException in Container.php line 734:
Class RedirectIfNotSelf does not exist

You need to register like

'self'              => \App\Http\Middleware\RedirectIfNotSelf::class,

then in controller

class PagesController extends Controller
{
    public function __construct() {
        $this->middleware('self');
    }

Please or to participate in this conversation.