2013-06-01 9 views
12

私のLaravel 4アプリケーションのナビゲーションバーに検索フォームがあります。誰かが検索を入力してサブミットすると、そのサイトのどのセクションに基づいてクエリを実行するのかを知りたいと思っています。たとえば、ブログページにある場合は、ブログ投稿のみを返信し、ユーザーページにいる場合は、ユーザーリストを表示するだけです。Laravel 4 - 検索に使用する隠し入力に現在のルート名を取得

私は何かが不足していない限り(確かに私はLaravelに新しいです!)私はgetCurrentRoute() - > getPath()を使ってこれを行うことができます。しかし、私はフォームからこれを行う必要があります。なぜなら、私がコントローラでそれをやろうとすると、もう古いルートがないからです。だから、私はそうのように私のフォームに隠しフィールドを作成しました:

{{ Form::hidden('route', '{{{Route::getCurrentRoute()->getPath()}}}') }}; 

はしかし、 "getCurrentRoute() - >ある、getPath()は、" 適切に評価されることはありません。フォームフィールドは、文字通り、それをプリントアウト:

<input name="route" type="hidden" value="&lt;?php echo e(Route::getCurrentRoute()-&gt;getPath()); ?&gt;"> 

誰もが仕事にこれを取得する方法を知っているか、私は完全に欠けていること、これを行うには良い方法はありますか?その時点でルートが、それは常にルート名は「検索」と考えて、その時点で

// Search 
Route::post('search', array('as' => 'search', 'uses' => '[email protected]'), function(){ 
}); 

に送信されてきたので繰り返しますが、私は通常のように、コントローラにこれを挿入することはできません。

答えて

31

これを試してみてください:

{{ Form::hidden('route', Route::getCurrentRoute()->getPath()) }} 

それはPHPブロック内すでにあるので...

+0

はい、ほとんど完璧に動作します。ありがとうございました!それは/と私の価値は "/ blog"ですが、私はif文でそれを確認することができるので、それは元気です!ありがとう! – user2444007

19

を名前付きルートを探しているなら、使用します。

Route::currentRouteName() 

ためsearchを返しますあなたが与えた例。

関連ドキュメントhttp://laravel.com/docs/routing#named-routes

関連する問題