Laravel 5.1 有问号的路线
Laravel 5.1 Routes that have question mark
我正在尝试在 Laravel 5.1 中创建一条路线,它将根据 "keyword" 搜索记录。我喜欢在我的 url 中包含一个 ?
以提高可读性。问题是,当我包括 ?
并用邮递员测试路线时,它 return 什么都没有。但是当我删除 ?
并将其替换为 /
并再次使用邮递员对其进行测试时,它将 return 关键字的值。 Laravel路由是否支持?
?
//Routes.php
Route::get('/search?keyword={keyword}', [
'as' => 'getAllSearchPublications',
'uses' => 'PublicationController@index'
]);
//Publication Controller
public function index($keyword)
{
return $keyword;
}
我已经在互联网上搜索了几个小时,并且阅读了 Laravel 文档,但我找不到答案。谢谢。
我相信您在谈论查询字符串。要接受查询参数,您不要将其作为参数传递。因此,例如,您的路线应该看起来更简单:
Route::get('/search', [
'as' => 'getAllSearchPublications',
'uses' => 'PublicationController@index'
]);
注意:我删除了 ?keyword={keyword}
。
然后,在您的控制器方法中,您可以通过调用 Request
对象上的 query
方法来获取查询参数。
public function index(Request $request)
{
return $request->query('keyword');
}
如果您还没有导入,则需要导入 use Illuminate\Http\Request;
才能使用 Request
class。
使用
$resquest
控制器操作中的参数以获取查询参数。而不是使用 "?"
在您的路线中创建。
我正在尝试在 Laravel 5.1 中创建一条路线,它将根据 "keyword" 搜索记录。我喜欢在我的 url 中包含一个 ?
以提高可读性。问题是,当我包括 ?
并用邮递员测试路线时,它 return 什么都没有。但是当我删除 ?
并将其替换为 /
并再次使用邮递员对其进行测试时,它将 return 关键字的值。 Laravel路由是否支持?
?
//Routes.php
Route::get('/search?keyword={keyword}', [
'as' => 'getAllSearchPublications',
'uses' => 'PublicationController@index'
]);
//Publication Controller
public function index($keyword)
{
return $keyword;
}
我已经在互联网上搜索了几个小时,并且阅读了 Laravel 文档,但我找不到答案。谢谢。
我相信您在谈论查询字符串。要接受查询参数,您不要将其作为参数传递。因此,例如,您的路线应该看起来更简单:
Route::get('/search', [
'as' => 'getAllSearchPublications',
'uses' => 'PublicationController@index'
]);
注意:我删除了 ?keyword={keyword}
。
然后,在您的控制器方法中,您可以通过调用 Request
对象上的 query
方法来获取查询参数。
public function index(Request $request)
{
return $request->query('keyword');
}
如果您还没有导入,则需要导入 use Illuminate\Http\Request;
才能使用 Request
class。
使用
$resquest
控制器操作中的参数以获取查询参数。而不是使用 "?"
在您的路线中创建。