Artisan 生成器来生成一个资源控制器(在之前命名后加上 --resource
选项)
php artisan make:controller PostController --resource
生成的控制器:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PostController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
以上 PostController
控制器的每个方法都有对应的请求方式、路由命名、URL、方法名和业务逻辑约定。
HTTP请求方式 | URL | 控制器方法 | 路由命名 | 业务逻辑描述 |
---|---|---|---|---|
GET | post | index() | post.index | 展示所有文章 |
GET | post/create | create() | post.create | 发布文章表单页面 |
POST | post | store() | post.store | 获取表单提交数据并保存新文章 |
GET | post/{post} | show() | post.show | 展示单个文章 |
GET | post/{id}/edit | edit() | post.edit | 编辑文章表单页面 |
PUT | post/{id} | update() | post.update | 获取编辑表单输入并更新文章 |
DELETE | post/{id} | destroy() | post.desc | 删除单个文章 |
Laravel 还为我们提供了一个 Route::resource
方法用于一次注册包含上面列出的所有路由,并且遵循上述所有约定:
Route::resource('post', 'PostController');
你可以通过 Artisan 命令 php artisan route:list
查看应用的所有路由: