私が設定したデフォルトの動作ではなくそのページにリダイレクトされる/login
ページにdestination
クエリパラメータを渡すことができる単純な機能を構築しています。Laravel 5でパスが有効かどうかをどのように確認しますか?
宛先はセッションに格納され、後で使用して、LoginController内でリダイレクトします。私はパスが有効であると私はリダイレクトを決定する前にそれを確認したい場合にのみリダイレクトする必要が
if ($destination = session('login_redirect')) { .
$route = app('router')->getRoutes()->match(app('request')->create($destination));
$destination_route = route($route->getName(), $route->parameters());
}
:
は、ここに私のスニペットです。有効であれば、Laravelが200を返すURLだということです。現在、パスが有効なときに、app('request')->create()
に電話をかけて経路に経路を設定すると、(論理的に)NotFoundHttpException
になります。
app\Exceptions\Handler.php
のrender()
機能でいくつかの詐欺を行う唯一の方法はありますか?もしそうなら、私は有効な404(ユーザーページリクエスト)と、プログラムでリクエストを作成することによって得られる例外とを区別する方法が明確ではない。
try/catchが 'NotFoundHttpException'例外をキャッチしないため、これは機能しません。 – Justin
あなたの最善の策は、そのようにあなたのhandler.phpでその例外を捕まえることができると思います。 '使用するSymfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException; if($ e instanceof NotFoundHttpException) { //あなたのものはここに } ' – Drazxier