Iクラスは、URLセグメントごとに存在し、ミドルウェアがlaravelが例外をキャッチトリガされる前に、適切なtasks.Howeverを行い、投げるかどうかを確認するミドルウェアをしたエラー:ミドルウェアworkignないLaravelに予想通り5.2
ReflectionException in Route.php line 280:
Class App\Http\Controllers\cms\modules\asdfasdfsadf\asdfasdfsadfController does not exist
私が死んでcheckClass
ミドルウェアに何かをダンプすると、クラスが存在するときだけ値がダンプされます。
ミドルウェアが適用された私のルートは以下のとおりです。
<?php
namespace App\Http\Middleware;
use Closure;
use Request;
use Illuminate\Contracts\Auth\Guard;
class CheckClass
{
/**
* The Guard implementation.
*
* @var Guard
*/
protected $auth;
/**
* Create a new filter instance.
*
* @param Guard $auth
* @return void
*/
public function __construct(Guard $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!class_exists('App\\Http\\Controllers\\cms\\modules\\'.Request::segment(2).'\\'.Request::segment(2).'Controller')) {
return view("errors.404");
} else {
return $next($request);
}
return $next($request);
}
}
はないはずです。ここで
Route::group(['prefix' => PREFIX,'middleware'=>array('auth','role','checkClass')], function() {
Route::group(['namespace' => 'cms' . '\\modules\\' . Request::segment(2) ], function() {
Route::get('{module}/pages/{page}', Request::segment(4) . '[email protected]');
Route::get('{module}', Request::segment(2) . '[email protected]');
Route::get('{module}/{page}', Request::segment(2) . '[email protected]' . Request::segment(3));
Route::post('{module}/{page}', Request::segment(2) . '[email protected]' . Request::segment(3));
Route::get('{module}/{page}/{id}', Request::segment(2) . '[email protected]' . Request::segment(3));
Route::get('{module}/pages/{page}/{id}', Request::segment(4) . '[email protected]' . Request::segment(5));
Route::post('{module}/pages/{page}/{id}', Request::segment(4) . '[email protected]' . Request::segment(5));
Route::get('{module}/pages/{page}/{abc}/{id}', Request::segment(4) . '[email protected]' . Request::segment(5));
Route::post('{module}/pages/{page}/{abc}/{id}', Request::segment(4) . '[email protected]' . Request::segment(5));
});
});
我々はsegment.Hereは私checkClass
ミドルウェアであるURLごとのように私は、動的にルートを作成していることがわかりますlaravelがルートごとにコントローラクラスを検索する前にミドルウェアが起動しますか?
なぜでしょうか? – TheFallen