2016-10-09 12 views
-1
public function boot() 
{ 
    $this->app['events']->listen('router.matched', function() { 
     $this->app->resolving(function (FormRequest $request, $app) { 
      $this->initializeRequest($request, $app['request']); 

      $request->setContainer($app) 
       ->setRedirector($app['Laravel\Lumen\Http\Redirector']); 
     }); 
    }); 
} 

これは私のカスタムサービスプロバイダのbootstrap/app.phpに登録したブート方法です。私はLumen 5.3フレームワークを使用します。ルーメン5.3でrouter.matchedイベントが発生しないのはなぜですか?

+0

このイベントは存在しないため、決して解雇されないためです。 'router.matched'イベントはLaravel 4.1の一部でしたが、それ以降のバージョンでは削除されました。ルーメンの一部ではありませんでした。私はそれが何をしようとしているのかは分かりませんが、これを扱う別の方法を考える必要があるでしょう。 – maiorano84

答えて

0

Lumenは、Laravelとは異なるルーターを使用します。 Lumenはルータにnikic/fast-routeパッケージを使用しますが、Laravelはilluminate/routingパッケージを使用します。ルートが一致しても、完全なLaravelルータだけが起動します。

注釈として、発生したイベントは、router.matchedまで5.1です。 5.2では、ルータはEvents\RouteMatchedイベントオブジェクトを起動するように更新されました。ただし、Lumenが使用するルーターからはイベントは発生しません。

関連する問題