我要做的是构建一个具有查询参数
的laravel axios路由示例请求看起来像
axios.get("/user-management/permissions?role=" + this.role)
所以aboe生成
localhost:8000/user-management/permissions?role=admin"//role value changes
现在我被困在设置laravel路线中的实际路线
我有以下
Route::get('permissions/{role}', "PermissionsController@PermissionRole");
上面的路线永远不会被执行。我如何设置我的laravel路线以获得查询字符串参数
答案 0 :(得分:4)
我觉得你误会了:
路由Route::get('permissions/{role}', "PermissionsController@PermissionRole");
将响应/user-management/permissions/admin
您无需指定预期的查询字符串。你需要这条路线:
Route::get('permissions', "PermissionsController@PermissionRole");
然后在你的控制器中:
function PermissionRole(Request $request) {
$role= $request->get("role"); //admin ?
}
如果您想将角色添加为URL的一部分,您可以这样做:
Route::get('permissions/{role}', "PermissionsController@PermissionRole");
然后您可以访问操作中的角色:
function PermissionRole(Request $request, $role) {
//$role variable name matches the route name
}
但是,您也可以使用验证强制要求:
function PermissionRole(Request $request) {
$this->validate($request->all(), [
"role" => "required|in:admin,user" //example
]);
}
答案 1 :(得分:1)
路线:
Route::get('permissions/{role}', "PermissionsController@PermissionRole");
永远不会被执行,因为你应该有这样的链接:
localhost:8000/user-management/permissions/admin //admin is role