Как вызвать промежуточное ПО в пользовательском пакете laravel и пройти аутентификацию - PullRequest
0 голосов
/ 28 февраля 2020

Я работаю над модулем / пакетом базового приложения. Я создал промежуточное программное обеспечение RoleMiddleware, и я также приложил изображение своих каталогов.

app
 /Http
  /Middleware
   /RoleMiddleware.php

У меня есть следующий каталог моего пользовательского пакета

 app
   /package
    /cases  (This is the package name)
     /src
      /Http
       /Controllers
        /CaseController.php

, теперь я хочу вызвать мой RoleMiddleware в конструкторе контроллера упаковщика, но роль промежуточного программного обеспечения не работает в конструкторе, как можно Я делаю так, чтобы следующее промежуточное программное обеспечение, когда вызов с web.php rote в моем пакете возвращает null, но если я маршрутизирую по умолчанию, web.php файл возвращает мне ноль.

RoleMiddlware defiend в Default Middlware Folder

class RoleMiddleware
    {

    public function handle($request, Closure $next)
    {
        dd(Auth::user());
        if (Auth::check() === false) {
            return redirect('login');
        } elseif (Auth::check() === true) {

            dd('hi');

            $roles = Role::all()->pluck('slug');

            if (is_null($request->user())) {
                abort(404);
            }
            if (!$request->user()->hasRole($roles)) {
                abort(404);
            }

            if ($request->user()) {
                if ($request->user()->hasRole($roles)) {
                    return $next($request);
                }
            }
        }
    }
}

Дело Контроллер Defiend в упаковке app/cases/Http/controller/caseController.php

class CaseController extends Controller
{
    public function __construct()
    {
        $this->middleware('role',['except' => 'caseUrlView']);


    }
    public function index()
    {
        $data['portal'] = Portal::all();
        $data['operators'] = Operator::all();

        return view('cases::case', $data);
    }

enter image description here

...