在laravel 中定義route的位置
5.2版本之前 app/Http/routes.php
5.3版本之後 有提供routes資料夾在目錄中
還有一個也會影響route設定的地方app/Providers/AppServiceProvider.php
Route::get('/user', 'UserController@index');
Route提供的Https verb 方法
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
如果一個route 要可以有多種回應可以用
match
甚至是any
另外關於route 還有提供很多種方法和實作細節,底下舉幾個用法
Route::redirect('/here', '/there', 301);
Route::view('/welcome', 'welcome', ['name' => 'Taylor']);
第三個參數 ['name' => 'Taylor']
這個是要另外傳給前端的data,非必填。
直接帶參數:
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
//
});
Route::get('posts/{post}/comments/{comment}', 'CommentController@getSpecificComment');
選擇性參數 [參數帶入問號 => 可不傳name參數]
Route::get('user/{name?}', function ($name = null) {
return $name;
});
注意,route變數命名(
{}
)裡面不能含-
,如果要分隔字的話需使用_
分隔。
另外也可以命名參數,讓他在其他地方也可以方便被取用Route::get('user/profile', 'UserProfileController@show')->name('profile');