2017-10-10 131 views
1

什么我试图做的是建立具有查询参数是Laravel vuejs路线

的示例请求看起来像

axios.get("/user-management/permissions?role=" + this.role) 

所以aboe产生

localhost:8000/user-management/permissions?role=admin"//role value changes 
一个laravel爱可信路线

现在我坚持设置laravel路线的实际路线

我有以下的

Route::get('permissions/{role}', "[email protected]"); 

上述路线是永远executed.How去有关设置我的laravel路由具有查询字符串参数

回答

4

我想你是误会:

路线Route::get('permissions/{role}', "[email protected]");将响应请求的形式/user-management/permissions/admin

您不需要指定预期的查询字符串。你需要有这条路线:

Route::get('permissions', "[email protected]"); 

然后在你的控制器:

function PermissionRole(Request $request) { 
     $role= $request->get("role"); //admin ? 
} 

如果你想要添加到URL的一部分的作用,你可以这样做:

Route::get('permissions/{role}', "[email protected]"); 

然后你可以访问角色的动作:

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 
     ]); 
} 
+0

好吧,我看我的错误,但有可能建立路线参数我试图建立一个人们会传递查询参数,例如:?角色=“”?日期=“”?newitem =“” –

+0

@GEOFFREYMWANGI不与查询字符串参数但是你可以在'Request'对象上执行[Validation](https://laravel.com/docs/5.5/validation),甚至可以用你自己的路由指定的类来覆盖它(使用[Form validation](https:/ /laravel.com/docs/5.5/validation#form-request-validation) – apokryfos

+0

也基于你所说的方式,我不能强制这个角色是强制性的,所以添加/ {角色}使其成为强制性的,但现在我无法获取强制性参数我是否会去做这件事。 –

1

路线:

Route::get('permissions/{role}', "[email protected]"); 

永远不会执行,因为你应该有这样的链接:

localhost:8000/user-management/permissions/admin //admin is role