【问题标题】:Laravel 5 making a route for a specific linkLaravel 5为特定链接制作路线
【发布时间】:2015-09-03 22:30:02
【问题描述】:
我有一个链接,该链接指向类似
的地址
http://localhost/pages/vehicles?show=61
是否可以为那种我厌倦了路线但不起作用的那种链接创建路线
Route::get('/pages/vehicles?show={id}', ['middleware' => ['roles'], 'uses' => 'PagesController@show', 'roles' => ['Admin']]);
【问题讨论】:
标签:
laravel
laravel-5
laravel-routing
【解决方案1】:
不需要在路由中放入查询参数。因此,请尝试不使用该部分。
Route::get('/pages/vehicles', ['middleware' => ['roles'], 'uses' => 'PagesController@show', 'roles' => ['Admin']]);
您可以在控制器方法中获取查询参数,如下所示并进行处理。
$id = Request::input('show');
您可以在请求 url 中包含任意数量的查询参数。但不需要在路由路径中定义它们。但是,如果您希望查询参数(在您的情况下为 id)作为请求 url 的一部分,您必须在路由路径中定义它。例如,如果您的 url 想要类似于 http://localhost/pages/vehicles/61,那么您的路由配置应该如下所示。
Route::get('/pages/vehicles/{id}', ['middleware' => ['roles'], 'uses' => 'PagesController@show', 'roles' => ['Admin']]);
【解决方案2】:
我在尝试将表单直接发送到路线时遇到了类似的问题(使用 /pages/vehicles/61 之类的东西),但这似乎是不可能的(question here)。
如果您没有针对所有车辆的特定路线(/pages/vehicles 未显示车辆列表),您可以执行以下操作:
Route::get('pages/vehicles','PagesControler@show');
在你的控制器内部
$show = Request::input('show');
然后你需要做什么。否则,像我一样的“黑客”或 javascript(我假设您是从表单发送的)。