📅  最后修改于: 2023-12-03 15:02:39.419000             🧑  作者: Mango
在Laravel中,资源控制器是一种常见的处理HTTP请求的方式。它们提供了一种结构化的方式来处理常见的RESTful路由和操作。本文将讲解如何使用Laravel资源控制器。
要创建一个资源控制器,请在Laravel应用程序中运行以下Artisan命令:
php artisan make:controller UserController --resource
这将创建一个名为UserController的控制器,该控制器包含处理资源路由所需的基础方法。
要定义资源路由,请在Laravel应用程序中的routes/web.php文件中添加以下代码:
Route::resource('users', 'UserController');
此代码将定义以下资源路由:
| 方法 | URI | 动作 | | --------- | ---------------- | -------------| | GET | /users | index | | GET | /users/create | create | | POST | /users | store | | GET | /users/{id} | show | | GET | /users/{id}/edit | edit | | PUT/PATCH | /users/{id} | update | | DELETE | /users/{id} | destroy |
我们可以通过以下方式手动定义每一个路由:
Route::get('users', 'UserController@index');
Route::get('users/create', 'UserController@create');
Route::post('users', 'UserController@store');
Route::get('users/{id}', 'UserController@show');
Route::get('users/{id}/edit', 'UserController@edit');
Route::put('users/{id}', 'UserController@update');
Route::delete('users/{id}', 'UserController@destroy');
每个资源方法都对应于RESTful操作,如下所示:
class UserController extends Controller
{
public function index()
{
// 显示所有用户
}
public function create()
{
// 显示创建用户视图
}
public function store(Request $request)
{
// 存储新的用户
}
public function show($id)
{
// 显示指定用户
}
public function edit($id)
{
// 显示编辑指定用户视图
}
public function update(Request $request, $id)
{
// 更新指定用户
}
public function destroy($id)
{
// 删除指定用户
}
}
如果要使用不同的资源名称,可以将以下代码添加到控制器中:
protected $resource = 'myusers';
这将在路由中对应于以下方式:
Route::resource('myusers', 'UserController');
默认情况下,资源控制器使用与方法名称相同的视图文件名,例如index方法将使用views/users/index.blade.php视图文件。如果要使用不同的视图,请在方法中返回要使用的视图名称,例如:
public function index()
{
return view('admin.users.index');
}
Laravel资源控制器为处理RESTful路由提供了一种非常简单和结构化的方法。使用上述方法可以轻松创建和管理资源控制器,使您的代码更加简洁易读。