📜  资源路由 laravel - PHP (1)

📅  最后修改于: 2023-12-03 15:28:13.319000             🧑  作者: Mango

Laravel 资源路由

在 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.indexphotos.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 提供了灵活的扩展方式,可以通过补充操作,更加灵活地管理路由。