📅  最后修改于: 2023-12-03 15:28:13.319000             🧑  作者: Mango
在 Laravel 中,资源路由是一种用来管理 CRUD 动作的简单路由。资源路由可轻松将请求映射到控制器方法,从而使开发者能够快速地实现许多通用操作。
Laravel 支持两种方式定义资源路由。
使用 Route::resource
方法:
<?php
use Illuminate\Support\Facades\Route;
Route::resource('photos', 'PhotoController');
此时将会自动为 PhotoController
类中的方法添加资源路由。
通过手动添加路由:
<?php
use Illuminate\Support\Facades\Route;
Route::get('photos', 'PhotoController@index');
Route::get('photos/create', 'PhotoController@create');
Route::post('photos', 'PhotoController@store');
Route::get('photos/{photo}', 'PhotoController@show');
Route::get('photos/{photo}/edit', 'PhotoController@edit');
Route::put('photos/{photo}', 'PhotoController@update');
Route::delete('photos/{photo}', 'PhotoController@destroy');
使用 Route::resource
方法自动生成的路由都有名称,如 photos.index
、photos.create
等。
可以使用 php artisan route:list
命令查看应用中所有的路由列表。
资源路由自动映射到控制器方法来执行相应的操作。下面是控制器方法的对应关系。
| HTTP 请求 | 控制器方法 | 路由名称 | | --------- | ---------- | -------------------- | | GET | index | photos.index | | GET | create | photos.create | | POST | store | photos.store | | GET | show | photos.show | | GET | edit | photos.edit | | PUT/PATCH | update | photos.update | | DELETE | destroy | photos.destroy |
在 Laravel 7.x 及以上版本中,资源路由新增了一种补充操作(Optional Parameters)来增强路由的多样性。
补充操作可为资源路由增加前缀、中间件、名称等,可通过 Route::resource
方法第二个参数传参来操作。具体方法请查阅官方文档。
使用 Laravel 资源路由,可以轻松管理控制器的 CRUD 操作,提高了开发效率。同时,Laravel 提供了灵活的扩展方式,可以通过补充操作,更加灵活地管理路由。