7-1
還沒有控制器的路由寫法
- 假設有個資料表叫做
products
,那麼,路由可以這樣設定,左邊是路由,右邊是動作,底下的動作內容都是直接呼叫對應視圖(暫時不要跟著做,因為我們會直接用控制器來做更好):
Route::get('/product', function () {
return view('index');
})->name('product.index');
Route::get('/product/create', function () {
return view('create');
})->name('product.create');
Route::post('/product', function () {
return view('store');
})->name('product.store');
Route::get('/product/{id}', function () {
return view('show');
})->name('product.show');
Route::get('/product/{id}/edit', function () {
return view('edit');
})->name('product.edit');
Route::patch('/product/{id}', function () {
return view('update');
})->name('product.update');
Route::delete('/product/{id}', function () {
return view('destroy');
})->name('product.destroy');
二、相關說明:
- 動作一般就是一個closesure(閉包或匿名函數,亦即沒有命名的函數),如:
function () {
return view('視圖名稱');
}
- 可以用
name('路由名稱')
加上命名,例如:
Route::get('/product', function () {
return view('index');
})->name('product.index');
- 為什麼要命名?因為以後可以讓樣板呼叫用(換網址、換路徑都不用再修改程式碼),利用名稱來找到 route,如:
<a href="{{ route('product.index') }}">商品一覽</a>
-
查詢有多少 Route 可用
php artisan route:list