Laravel 4 app。たとえば、ユーザーがブログページにいる場合はブログの投稿のみを返し、ユーザーページにある場合はユーザーのリストのみを表示します。
何か不足している場合を除いて(確かにLaravelを初めて使用している可能性があります)、getCurrentRoute()-> getPath()を使用してこれを行うことができます。しかし、これをフォームから実行する必要があります。コントローラーで実行しようとすると、古いルートがなくなってしまうからです。そこで、次のようにフォームに非表示フィールドを作成しました。
{{ Form::hidden('route', '{{{Route::getCurrentRoute()->getPath()}}}') }};
ただし、「getCurrentRoute()-> getPath()」は正しく評価されません。フォームフィールドは文字通りそれを出力します:
<input name="route" type="hidden" value="<?php echo e(Route::getCurrentRoute()->getPath()); ?>">
これを機能させる方法を知っている人はいますか、それとも私が完全に見逃しているより良い方法がありますか?繰り返しますが、通常のようにこれをコントローラーに挿入することはできません。その時点でルートが
// Search
Route::post('search', array('as' => 'search', 'uses' => 'SearchController@postSearch'), function(){
});
その時点で、ルート名は常に「検索」と見なされます。
これを試して:
{{ Form::hidden('route', Route::getCurrentRoute()->getPath()) }}
それはすでにPHPブロックの中にあるからです。
名前付きルートを探している場合は、次を使用します。
Route::currentRouteName()
あなたが与えた例ではsearch
を返します。