路由
-
路由的定義
用于和終端用戶進(jìn)行交互
可以在routes/web.php中定義web路由炬灭,用于終端用戶進(jìn)行訪問(wèn)潜必,也可以在routes/api.php中定義API路由每币,用于提供API服務(wù)
-
routes/web.php中路由的定義
-
基本定義
// routes/web.php Route::get('/', function () { return 'Hello, World!'; });
本樣例采用了最簡(jiǎn)單的方法先壕,將路徑(‘/’)與閉包結(jié)合起來(lái)使用
- 閉包是PHP版本的匿名函數(shù)翔脱。閉包是一個(gè)函數(shù)奴拦,可以將它作為一個(gè)對(duì)象傳遞,并賦值給一個(gè)變量届吁,將其作為參數(shù)傳遞給其他函數(shù)和方法
- 現(xiàn)在错妖,定義好路由后,如果有人訪問(wèn) / (域名的根路徑),路由就會(huì)運(yùn)行定義好的閉包疚沐,同時(shí)會(huì)返回結(jié)果
繼續(xù)給出一些例子
-
Route::get('/', function() { return view('welcome'); });
Route::get('/help', function() { return view('help'); });
Route::get('/about', function() { return view('about'); });
-
-
路由動(dòng)詞
當(dāng)http使用不同的方法進(jìn)行請(qǐng)求時(shí)暂氯,就要使用對(duì)應(yīng)的路由定義
-
Route::get('/', function() { return 0; });
Route::post('/', function() {});
Route::put('/', function() {});
Route::delete('/', function() {});
Route::any('/', function() {});
Route::match(['get', 'post'], '/', function() {});
-
路由處理
-
將控制器名稱和方法作為字符串傳給閉包
Route::get('/', 'StaticPagesController@home');
將請(qǐng)求傳遞到靜態(tài)頁(yè)面控制器中的home()方法處理
-
-
路由參數(shù)
-
如果定義的路由有參數(shù),那么可以在路由中定義它們亮蛔,并將它們傳遞給閉包
Route::get('users/{id}/friends', function ($id){ // });
-
-
路由名稱
-
要在應(yīng)用程序的其他位置引用路由痴施,可以通過(guò)路徑,也可以通過(guò)對(duì)每一個(gè)路由命名究流,這樣就可以不通過(guò)URL直接引用路由
//在web.php中定義路由 Route::get('members/{id}', 'MemberControllers@show')->name('member.show');
//使用route助手在視圖中鏈接路由 <a href="<php echo route('member.show', ['id' => 1]); ?>"></a>
-
路由的一般命名格式
復(fù)數(shù)的資源名稱 + 相應(yīng)的動(dòng)作
photos.index photos.create photos.store photos.show photos.edit photos.update photos.destory
-
將路由參數(shù)傳遞給route()助手
//定義路由 Route::get('users/{userId}/commennts/{commentId}, usersControllers@show')->name('users.comments.show'); //傳入?yún)?shù), http://myapp.com/users/1/comments/2 route('users.comments.show', [1,2]) route('users.comments.show', ['userId' => 1, 'commentId' => 2]) route('users.comments.show', ['commentId' => 2, 'userId' => 1])
不是關(guān)聯(lián)數(shù)組里面的值會(huì)按順序分配辣吃,關(guān)聯(lián)數(shù)組里的值會(huì)按照相應(yīng)的鍵名進(jìn)行匹配,數(shù)組里面其他剩下的數(shù)據(jù)都會(huì)作為查詢參數(shù)進(jìn)行添加并使用
-