资源控制器
Laravel 资源路由将典型的 CRUD
路由分配给具有单行代码的控制器。例如,你可能希望创建一个控制器来处理应用程序存储的照片的所有 HTTP 请求。使用 make:controller
Artisan 命令,我们可以快速创建这样的控制器:
php artisan make:controller PhotoController --resource
此命令将在 app/Http/Controllers/PhotoController.php
生成一个控制器。控制器将包含每个可用资源操作的方法。
资源控制器外观的示例
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PhotoController 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)
{
//
}
}
资源控制器的示例共享下表中方法名称。
接下来,你可以向控制器注册资源丰富的路由:
Route::resource('photos', 'PhotoController');
此单一路由声明创建多个路由来处理资源上的各种操作。生成的控制器已经有针对每个操作的存根方法,包括通知你它们处理的 HTTP 谓词和 URI 的注释。
资源控制器处理的操作
动词 | URI | 行动 | 路线名称 |
---|---|---|---|
得到 | /photos |
指数 | photos.index |
得到 | /photos/create |
创建 | photos.create |
POST |
/photos |
商店 | photos.store |
得到 | /photos/{photo} |
节目 | photos.show |
得到 | /photos/{photo}/edit |
编辑 | photos.edit |
PUT / PATCH | /photos/{photo} |
更新 | photos.update |
删除 | /photos/{photo} |
破坏 | photos.destroy |