2016-12-12 12 views
0

私はコントローラからのビューにリダイレクトしていますが、これは問題ありませんが、ビューが存在しない場合は空白のページが返されます。Laravelのコントローラからの既存ビューへのリダイレクト5.3

class PagesController extends Controller  
{ 
public function show(Request $request) 
    { 
$showpage = $request->input('search'); // Request object 
    if (View::exists('pages.'.$showpage)) { 
    return view('pages.'.$showpage); 
    } 
     else { 
     return ; 
    } 
    } 
} 
+0

ビューが存在しない場合はどうしますか? –

答えて

0

コントローラーが見つからない場合にレンダリングしたいだけなら、エラーページを表示することをお勧めします。リソース/エラーでエラーページを作成してレンダリングすることができます。

これをデフォルトの503.blade.phpテンプレートで試してから、自分で作成してください。

class PagesController extends Controller  
{ 
public function show(Request $request) 
    { 
$showpage = $request->input('search'); // Request object 
    if (View::exists('pages.'.$showpage)) { 
    return view('pages.'.$showpage); 
    } 
     else { 
     return response()->view('errors.503'); 
    } 
    } 
} 
+0

私が望むのは、同じページに留まり、ビューが存在しない場合は何もしないで、エラーページをレンダリングできますが、どこにも行かない方が良いです。 – Radovan

+0

この場合、 'return redirect() - > back();'を使って同じビューにリダイレクトすることができます。しかし、リダイレクトせずに同じページにいたい場合は、 'show'を呼び出す前に、ビューが有効かどうかを確認するためにajaxリクエストを使用するようにビューコードを変更する必要があります。 – Laerte

関連する問題