資源控制器
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 |