背景:最近公司在開發一個預算過程管理系統,使用的是laravel5.2的框架,在框架使用的模板裏面遇到了一些get傳參後,再進行跳轉就會多一級URL目錄的問題,最後在網上找了許久,得知了解決辦法,爲了可能有同樣問題的猿友,所以小猿就在這兒分享一下,希望可以幫到大家吧。
laravel官方文檔上的laravel get傳參是這樣的:
路由層:
Route::get('modifyAssets/{id}','BudgetAsssetsController@modifyAssets');
翻譯-->
Route::get('路由名/{參數}',控制器名稱@控制器裏的方法');
視圖層:
<a href="modifyAssets/id">修改</a>
控制器層:
public function modifyITCost(Request $request){
dd($request->route( 'id' ));
echo"<script>alert('修改成功');window.location.href = 'ITcostManagement';</script>";
}
這樣寫的話,URL返回的目錄就會多一層,如:http://www.baidu.com/modifyAssets/ITcostManagement 而不是您想要的 http://www.baidu.com/ITcostManagement ;這個不是框架本身的錯,是因爲http解析跳轉的時候,就已經把“/id”當成目錄了,而http的跳轉默認是返回上一級目錄後再追加重新訪問;既然現在已經知道了問題原因,哪現在就要想辦法解決了。
解決辦法:
路由層:
Route::get('modifyAssets','BudgetAsssetsController@modifyAssets')->name('modifyAssets');
翻譯-->
Route::get('路由名',控制器名稱@控制器裏的方法')->name('路由輔助名');
視圖層:
<a href="{{route('cc',array('id'=>1))}}">修改</a>
控制器層:
public function modifyITCost(Request $request){
dd($request->input('id'));
echo"<script>alert('修改成功');window.location.href = 'ITcostManagement';</script>";
}
這樣url訪問的鏈接就是我們常見的:http://www.baidu.com/modifyITCost?id=2了;->name();大家不明白的可以上網查一下,這個是laravel路由的輔助函數;剩下的大家就正常操作就可以了。