Laravel Middleware, die nicht am Controller
Ich habe eine middleware namens 'AdminMiddleware', welches im Konstruktor einer Klasse. Für einige Grund, der middleware wird nicht aufgerufen, aus dem Konstruktor übergeben, obwohl der Konstruktor-Funktion ausgeführt wird. Ich habe versucht zu tun, ein sterben dump auf den adminMiddleware-Datei, aber es scheint, wie es einfach ignoriert diese Datei.
namespace App\Http\Controllers\SuperAdmin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class dashboard extends Controller
{
protected $user;
public function __construct()
{
$this->middleware('admin');
$this->user = Auth::User();
}
//Kernel.php
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'superadmin' => \App\Http\Middleware\SuperAdminMiddleware::class,
'admin' => \App\Http\Middleware\AdminMiddleware::class,
];
Für ein Projekt Anforderungen, die ich verwenden kann die middleware direkt auf den Strecken. Jede Hilfe ist willkommen, ich bin mit laravel 5.1.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie tun 2 Dinge zu aktivieren middleware in der Steuerung:
Register-middleware in $routeMiddleware in Ihrem App\Http\Kernel.php
protected $routeMiddleware = [
'admin' => 'App\Http\Middleware\AdminMiddleware',
];
Aktivieren middleware in Ihrem controller, über middleware ist der Schlüssel, nicht Klasse name:
$this->middleware('admin');
Ich habe das gleiche problem und lösen es, indem composer dump-autoload.
Mein problem ist, den Dateinamen ändern und nicht neu den autoload.
Ich hoffe, es funktioniert für Sie.
Ich lief in das gleiche Problem, und anscheinend route caching speichert auch middlewares.
So
php artisan route:clear
löste es in meinem Fall.