2016-03-28 14 views
2

サイトの訪問者/ページのユーザーは、メッセージでインデックスにリダイレクトします。表示でリダイレクトメッセージにアクセスするにはどうすればよいですか?マイルート:laravel 5.2メッセージでリダイレクト

Route::group(['middleware' => 'web'],function(){ 
    Route::get('/page', function() { 
     return redirect('/')->withMessage(["warning"=> ["yeah","test"]]); // According official docs, this should work. 
    }); 
    Route::get('/', '[email protected]'); 
}); 

マイページコントローラ:

<?php 

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\News; 
use App\PageContact; 
use Session; 

class Page extends Controller{ 
    public function front(Request $Request){ 
     return view('index')->withNews("news"); 
} 

重要:はい、私のページはすでにウェブミドルウェアに包まれています。また、Laravel 3またはLaravel 4ソリューションの投稿は避けてください。

答えて

5

それは次のようになります。ビューで次に

->with('warning', 'testing') 

@if(session()->has('warning')) 
    {!! session()->get('warning') !!} 
@endif 
+0

あなたは右の一つのことを除いていた - $警告は、したがって、ビューにアクセスすることができない、そのように宣言されていません。代わりに、session() - > get( 'warning')を使って変数を取り出すことができます。 – Fusion

+0

はい、もちろんです。それを指摘していただきありがとうございます。 – user2094178

0

user2094178からの答えは正しいですが、

->with('warning', 'testing') 

にそれを使用する必要はありません次のようにすることもできます(あなたのように):

->withNews("news"); 
->withWarning('testing'); 

ビュークラスは魔法機能「__call」を使用しているので:

 /** 
    * Dynamically bind parameters to the view. 
    * 
    * @param string $method 
    * @param array $parameters 
    * @return \Illuminate\View\View 
    * 
    * @throws \BadMethodCallException 
    */ 
    public function __call($method, $parameters) 
    { 
     if (Str::startsWith($method, 'with')) { 
      return $this->with(Str::snake(substr($method, 4)), $parameters[0]); 
     } 

     throw new BadMethodCallException("Method [$method] does not exist on view."); 
    }