控制器篇
创建一个新的控制器
php artisan make:controller TestController
控制器
class TestController extends Controller
{
public function test(){
dd('test');
}
}
定义一个指向控制器的路由
Route::get('/test',[\App\Http\Controllers\TestController::class,'test']);
在指向的同时还可以带参数
Route::get('/test/{id}', [\App\Http\Controllers\TestController::class, 'test']);
创建一个单行为的控制器 当注册单个行为控制器的路由时不需要指名方法就可以使用,它会自己去找办法使用
php artisan make:controller ShowController --invokable
资源型控制器
Laravel 的资源路由通过单行代码即可将典型的「CURD (增删改查)」路由分配给控制器。
创建资源型控制器命令
php artisan make:controller PhotoController --resource
资源控制器操作处理
Verb | 路由 | 方法 | 路由命名 |
---|
GET | /photos | index | photos.index | GET | /photos/create | create | photos.create | POST | /photos | store | photos.store | GET | /photos/{photo} | show | photos.show | GET | /photos/{photo}/edit | edit | photos.edit | PUT/PATCH | /photos/{photo} | update | photos.update | DELETE | /photos/{photo} | destroy | photos.destroy |
注册资源路由
Route::resource('phone', \App\Http\Controllers\PhoneController::class);
部分资源路由 当声明资源路由时,你可以指定控制器处理的部分行为,而不是所有默认的行为
Route::resource('email', \App\Http\Controllers\PhoneController::class)->except([
'create','store','update','destroy'
]);
Route::resource('email', \App\Http\Controllers\PhoneController::class)->only([
'index','show'
]);
API资源路由 当声明用于 APIs 的资源路由时,通常需要排除显示 HTML 模板的路由
生成API资源控制器
php artisan make:controller API/PhotoController --api
注册API资源路由
Route::apiResource('photos', PhotoController::class);
命名资源路由 默认情况下,所有的资源控制器行为都有一个路由名称。你可以传入 names 数组来覆盖这些名称:
Route::resource('photos', PhotoController::class)->names([
'create' => 'photos.build'
]);
命名资源路由参数 可以更改或设置路由的参数
Route::resource('users', AdminUserController::class)->parameters([
'users' => 'admin_user'
]);
补充资源控制器 有时候默认生成的资源控制器并不够用,这就需要去多加一些方法
Route::get('photos/addPhone', [PhotoController::class, 'addPhone']);
|