Не находит класс Middleware

152
01 декабря 2019, 01:20

Выбрасывает ошибку Class App\Http\App\Http\Middleware\RedirectIfNotAAdmin does not exist . С чем может быть связано?

Файл RedirectIfNotAAdmin.php находящийся в папке Middleware

namespace App\Http\Middleware;
use Closure;
class RedirectIfNotAAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (! $request ->user()->isATeamAdmin()){
            return redirect('/');
        }
        return $next($request);
    }
}

Файл Kernel.php

protected $routeMiddleware = [
        ...
        'admin' => App\Http\Middleware\RedirectIfNotAAdmin::class
    ];

В файл User.php добавил такой код

public function isATeamAdmin(){
        return true;
    }

Ну и собственно роут в Web.php

Route::get('/news',['middleware' => 'admin',
    'uses'=>'PageController@news'
]);
Answer 1

Есть предположение, что если пользователь будет не авторизован, возникнет подобная ошибка. Попробуй поставить дополнительное условие в if на авторизацию пользователя, а уже потом на его свойства и методы:

namespace App\Http\Middleware;
use Closure;
class RedirectIfNotAAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!$request->user() || !$request->user()->isATeamAdmin()){
            return redirect('/');
        }
        return $next($request);
    }
}
READ ALSO
PHP Оборвать соединение с сервером

PHP Оборвать соединение с сервером

Не могу понять как сделать функцию для моментального разрыва соединения с серверомЯ читал что нужно использовать ob_start(); ob_end_flush(); flush(); и т

110
Как отправить DTMF из сервера Asterisk в браузер?

Как отправить DTMF из сервера Asterisk в браузер?

Я создал функционал, чтобы звонить из браузера на указанный номер телефонаИ в dial plan мне нужно взять из клиента DTMF и обратно вернуть браузеру...

100
Как передать массив из php в js?

Как передать массив из php в js?

мне нужно , чтоб появлялись точки на карте , использую строчку (ниже) то всё ок , а точек очень много и все хранятся в бд и я не могу результаты...

156
Не работает Gettext on Windows PHP

Не работает Gettext on Windows PHP

Суть проблемы в том, что выводится только исходная строчка, msgid "HELLO_WORLD" вместо строчки перевода msgstr "Hello World!!!"

112