laravel路由
1.什么是路由
將用戶的請求按照事先規劃是方案提交給指定的控制器或者功能函數來進行處理(通俗的講路由就是訪問地址的形式)
在laravel框架中,其并沒有指定固定參數,其路由必須要手工進行配置
路由文件在routes/web.php
return view()語法表示展示視圖,welcome是視圖文件/路徑
2.路由的定義格式
Route::請求方式(‘請求的URL’,匿名函數或者控制器響應的方法)
函數的返回值,就是請求的響應。
特別注意的是:路由地址中的第一個“/”可以不寫(包括根路由,也是后期路由的拆分)
如果還有更多的路由需要去定義,則仿照上述的形式語法繼續編寫即可。但是只需要訪問,則必須需要定義路由。
3.路由的請求方式
常見的四個方法
1》get方法:表示匹配請求類型為get的請求;
2》post方法:表示匹配請求類型為post的請求;
3》macth方法:表示匹配用戶指定的幾個請求類型(通過第一個參數去指定)的請求;
語法:route::macth([‘get’,‘post’,’…’], u r l , url, url,calback);
4》any方法:表示匹配路由所支持的全部請求類型
**如果路由方法與實際的請求類型不一致,則會報錯
4.路由參數
路由參數其實就是給路由傳遞參數
參數分為必選參數和可選參數
function aa( a ) a a ( ) ; f u n c t i o b a a ( a){ } aa(); functiob aa( a)aa();functiobaa(a=0)
{
}
aa();
必選參數:一旦在路由中定義了,則必須傳遞,不傳遞就會報錯
Route::get(‘home1/{id}’,function($id){
});
路由參數的傳遞通過路由地址中的“{參數名}”的形式來進行傳遞,該形式是必選參數的形式,可以選的則使用“{參數名?}”。Route::get(‘home1/{id}’,function($id){
echo ‘輸入的id是’ . $id;});
路由參數的傳遞通過路由地址中的“{參數名}”的形式來進行傳遞,該形式是必選參數的形式,可以選的則使用“{參數名?}”。
5.路由別名
路由別名相當于在路由定義的時候,為路由起了一個別名,在以后的程序中可以通過這個別名來獲取路由的信息。/absafvdsadssdbfdsfa/qwdasd1312213fberfdvf/ascdfadvs11 => url1
后期在視圖中會頻繁使用到這樣的代碼“xxxx”
場景:在后期需要頻繁的定義跳轉地址,但是如果這些地址寫死了的話,萬一發生變化,得全部修改,這個操作比較麻煩,因此可以使用路由別名的機制(定義路由的時候給路由起名字,在后期需要使用路由的時候直接調用名字)去簡化以后的操作。
給路由起名字的語法:
Route::請求類型(路由地址,響應方法) -> name(別名);
例如:給hello的路由起名字“h1”
調用該路由則可以寫成:route(‘名字’);例如像剛才的h1,則需要寫成route(‘h1’),該方法類似ThinkPHP框架中url方法。
擴展補充:查看系統已經有的路由命令:#php artisanroute:list
6.路由群組
/admin/login
/admin/logout
/admin/index
/admin/user/add
/admin/user/del
他們的共同點(這個共同點不局限于只是前綴)是,都有/admin/前綴,為了管理方便,可以把他們放到一個路由分組中,這個分組稱之為路由群組。
使用prefix屬性指定路由前綴,也就是其路由中都具備的相同部分。
語法:Route::group(公共屬性鍵值數組,回調函數); 回調函數中放的剔除公共屬性之后的路由
比如,想要為所有路由URLs前面添加前綴admin
Route::group([‘prefix’ =>‘admin’], function () {
Route::get('login',function () {// 匹配 "/admin/login" URL});
Route::get(‘logout’, function () {
// 匹配 "/admin/logout" URL});
Route::get(‘user/add’, function () {
// 匹配 "/admin/user/add" URL});
});
記住:
1、以大局為重,盡量站在全局的角度考慮路由的公共特性。
2、群組里的路由盡量的多一些,不能幾個/一兩個就整一個群組,沒有必要。
注意:使用路由群組不會改變其原有在地址欄中輸入的地址。變的只是路由定義的寫法。
在后期還會接觸到middleware(中間件)屬性。
總結
- 上一篇: mac下Charles的安装和iPhon
- 下一篇: python使用numba库实现gpu加