2017-06-09 5 views
1

create wizardが完了した後にメインページにリダイレクトしようとしています。表示するようにリダイレクトするが、LaravelのURLを変更する

コントローラーに書き込むとすべて問題ありませんが、URLはlocalhost:8080に変更されませんが、「localhost:8080/wizard/finish`」のままです。

redirect('/')->with(['message' => 'Done.'])を使用するとメインページにリダイレクトされますが、すでにRoute::get('/','Controller')が存在するため、コントローラがトリガーされ、メッセージなしでメインのメインページが返されます。

<div class="row"> 
      <div class="col-12"> 
       @if (isset($message)) 
        <p align="center" style="color: red;"><strong>{{$message}}</strong></p> 
       @endif 
      </div> 
     </div> 

EDIT:(/にマッピングされた)MainPageControllerでブレークポイントで、Iは/経路へのリダイレクトがあるとき、このコントローラがトリガーされることがわかり。したがって、MainPageControllerも同じビューを返しますが、メッセージは表示されないため、$messageが失われます。

+0

あなたは 'リターンリダイレクトを()を使用することができます - > wiht( - (メイン)へ> 'key' => 'data') '; –

+1

'return redirect() - >を( 'メインページのパス')'にすると、これは動作します –

+0

@NikhilRadadiya:これは有効なルートマッピングではない 'localhostl:8080/main'にリダイレクトされます。 –

答えて

2

あなたがリダイレクトしている場合は、Laravelは要求間のメッセージを維持するためにセッションを使用しています。この

return redirect('/url')->with('var', 'value'); 
+0

' $ message'は 'Route :: get( '/'、 'C​​ontroller');と思われますので、リダイレクトが発生したときにコントローラを起動します。 –

+0

varの$ message placeとその値を次のように使用します。 リダイレクト( '/ url') - > with($ message、 'Done'); –

+0

メッセージを保持しません。 –

0

を試してみてください。

だから、
return redirect('/')->with('message', 'Done.'); 

、このメッセージの変更を表示するには:これに

@if (isset($message)) 
    <p align="center" style="color: red;"><strong>{{$message}}</strong></p> 
@endif 

@if (session()->has('message')) 
    <p align="center" style="color: red;"><strong>{{ session('message') }}</strong></p> 
@endif 
+0

ブレークポイントは'MainPageController'('/'にマップされています)では、'/'ルートへのリダイレクトがあったときにこのコントローラが起動されることがわかります。したがって、 'MainPageController'も同じビューを返しますが、メッセージは表示されないので、' $ message'を失います。 –

+0

@AlexandruAntochi私はあなたにメッセージを得る方法を教えてくれました。 '$ message'を忘れると、新しいリクエストには存在しません。私が示したようにセッションを使用してください。 –

関連する問題