2017-10-10 147 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