資料庫課程作業筆記 - 編寫 RESTful 路由

MARTINPOTTER發表於2019-04-24

什麼是 RESTful

全稱 Representational State Transfer 是一種軟體架構風格、設計風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。

Laravel 資源路由

以 photo 為例下面就是 Laravel 中資源路由的規則與命名

動作 URI 行為 路由名稱
GET /photos index photos.index
GET /photos/create create photos.create
POST /photos store photos.store
GET /photos/{photo} show photos.show
GET /photos/{photo}/edit edit photos.edit
PUT/PATCH /photos/{photo} update photos.update
DELETE /photos/{photo} destroy photos.destroy

相關參考 Laravel 文件 控制器 - 資源路由
這些工作只需要使用 Route::resource()就可以自動生成,還可以自動生成資源控制器,節省很多時間

下面就寫下需要的路由
檔案 routes\web.php

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

use Illuminate\Support\Facades\Route;
// 首頁
Route::get('/', function () {
    return view('hw1');
})->name('index');

// 作業一
Route::get('/hw1', function () {
    return view('hw1');
})->name('hw1');

// 作業二
Route::get('/hw2', 'HomeWorkController@hw2')->name('hw2');

Route::group(['prefix' => 'hw2'], function () {
    Route::resource('employee','EmployeeController',['except' => 'show']);
    Route::resource('supplier','SupplierController',['except' => 'show']);
    Route::resource('product','ProductController',['except' => 'show']);
    Route::resource('customer','CustomerController',['except' => 'show']);
    Route::resource('purchase','PurchaseController',['except' => 'show']);
});

這裡個過程中只顯示了作業二的完成過程,路由第一個引數是資源名稱,第二個引數是對應的資源控制器,第三個引數使用except來排除不用的路由,這樣使用如下命令檢視生成的路由

php artisan route:list

資料庫課程作業筆記 - 編寫 RESTful 路由

可以看到這樣就建好了我們需要的全部路由,下面我們完成控制器

本作品採用《CC 協議》,轉載必須註明作者和本文連結
MARTINPOTTER

相關文章