路由查询字符串

时间:2015-02-11 22:51:25

标签: php laravel routing url-routing

我的模板文件中有一个表单:

                {{ Form::open(array('route' => 'get.index', 'method' => 'get')) }}
                    {{ Form::label('order', 'Order by') }}
                    {{ Form::select('order' , array('firstname' => 'First Name', 'lastname' => 'Last Name', 'state' => 'State')) }}
                    {{ Form::submit('Order results') }}
                {{ Form::close() }}

提交时,此表单输出一个名为order的GET查询变量,因此我的URL将为:

http://my.app/?order=firstname

这是get.index路线:

Route::get('/', array('uses' => 'HomeController@index', 'as' => 'get.index'));

是否有一种简单的方法可以将URL从上面的URL更改为类似的内容 http://my.app/order/fistname/

1 个答案:

答案 0 :(得分:0)

您可以拥有这样的路线的唯一方法是使用route parameter

Route::get('/order/{type}', array(
    'uses' => 'HomeController@index', 
    'as' => 'get.index'
));

然后您可以在控制器方法中使用type参数:

public function index($type) {

}

但除非您在javascript中格式化表单操作值以适合此路由,否则它将无法与您的实际表单一起使用。

但是,如果您可以使用其他内容而不是表单,则可以使用HTML a标记轻松执行此操作,例如:

Order by:
<a href="{{ route('get.index', 'firstname') }}">firstname</a>
<a href="{{ route('get.index', 'lastname') }}">lastname</a>