数据库课程作业笔记 - 编写 RESTful 路由

什么是 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
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!