2016-07-21 14 views
1

こんにちは私はLaravel 5.2で次のことをしようとしています。Laravel 5.2のコントローラを介してミドルウェアからビューに変数を渡します

概要:コントローラを介して、表示するためのミドルウェアからいくつかの変数を渡し

詳細:クライアントがログインしている場合は、関係なく、彼らが何をしたいルート、我々は、彼らがすべての「セットアップ手順」を完了しているかどうかを確認する必要がありません(各ステップは異なるルートを参照します。たとえば、会社情報、製品設定などがあります。彼らがすべてのセットアップステップを完了している場合は、選択したルートに進むようにしてください。そうでない場合は、まだ完了していないいずれかの適切な「セットアップステップ」ルートにリダイレクトされます。

すべてのクライアントコントローラは、NonSuperAdminと呼ばれる同じミドルウェアを実行します。私はこのミドルウェアに「設定ステップ」のチェックを入れて、適切な場所からリダイレクトしたいと思います。クライアントがこのミドルウェアによってセットアップルートにリダイレクトされた場合、適切なセットアップステップコントローラメソッドを介して、関連するビューに渡される "incompleteSetupTasks"コレクションが必要です。

これは可能ですか?どんな助けでも大歓迎です。

+0

ミドルウェア内部でリダイレクトを返すことができます。リダイレクトは、ミドルウェア内部のすべてのロジックを外部に保つことで、コントローラに大きなメリットをもたらします。 – user3158900

答えて

1

このデータはまた、あなたのコントローラで利用できるようになりますし、ビュー

にこれを使用すると、コントローラ

public function yourControllerAction($request) 
{ 
    $somevariable = Session::get('your_key'); 
    $viewdata = [ 
     'content' => $somevariable 
    ] 
    return view('yourview', $viewdata); 
} 

かのデータにアクセスする方法である

if($condition === true){ 
    $data = [ //your content ]; 
    Session::flash('your_key', $data); 
} 
next($request); 

ミドルウェアの利用セッションハンドラでセッションのデータに直接アクセスする

//inblade 
<p> 
    Your html content 
    @foreach(Session::get('your_key' as $data) 
    //your stuff 
    @endif 
</p> 
1

Laravel Session値の保存と読み取りに使用できますか?

+0

私はそれを試み、失敗しました。たぶん私は正しいことをしていないだろう。あなたは私に基本的な例を与えるのに十分親切ですか? –

+0

私はドキュメントへの私の答えの中であなたにリンクを与えます - 例があります。しかし、ここにあなたのコードを置くことができます、私はそれを見ていきます。私はミドルウェアでセッションを使用していないので、私のaboceアドバイスが正しいことを100%保証していません - あなたはそれを自分で確認する必要があります。 –

+0

ここにビデオチュートリアルがあります:https://laracasts.com/series/laravel-5-from-scratch/episodes/15、 –

0

あなたはGETまたはPOSTパラメータおよびこれらのパラメータが空の場合はミドルウェアとのルートに確認するようにセットアップ手順を渡すことができます。

Route::get('post/{setup1?}/{setup2?}', ['middleware' => 'role:admin', function ($setup1, $setup2) { 
    if(empty($setup1) and empty($setup2)){ 
     // do smth 
    } else { 
     // redirect 
    } 
}]); 

疑問符は、彼らはオプションのパラメータであることを意味します。それが役に立ちましたことを願っています。

関連する問題