一、创建控制器
控制器在 app/Http/Controllers 目录下,默认新建的控制器应继承自该目录下的 Controller::class,可以使用 php artisan make:controller 命令创建类:
1 | php artisan make:controller UserController |
1 |
|
如上面代码所示,里面没有任何方法,我们可以添加 -r 参数,创建一个资源控制器(resource controller),即所谓的 CURD:它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作:
1 | php artisan make:controller UserController -r |
1 |
|
二、定义路由
参照在路由那一篇的内容,我们可以这样定义:
1 | Route::get('/users',[\App\Http\Controllers\UserController::class, 'index'])->name('users.index'); |
但是对于资源控制器,我们可以把上面的路由简化为:
1 | Route::resource('/users', \App\Http\Controllers\UserController::class); |
有时我们可能不需要删除操作,那么可以这样排除掉:
1 | Route::resource('/users', \App\Http\Controllers\UserController::class)->except(['destroy']); |
或者只需要 index 和 show ,那么可以只添加:
1 | Route::resource('/users', \App\Http\Controllers\UserController::class)->only(['index','show']); |
当然这只是脚手架创建的一般功能下的控制器,如果要实现别的功能,比如导出,我们可以继续在 UserController::class 中添加添加 export 方法,并定义相应的路由:
1 | namespace App\Http\Controllers; |
1 | Route::get('/users/export', [\App\Http\Controllers\UserController::class, 'export'])->name('users.export'); |