laravel基础学习笔记--控制器篇
控制器篇
创建一个新的控制器
php artisan make:controller TestController
控制器
class TestController extends Controller
{
public function test(){
dd('test');
}
}
定义一个指向控制器的路由
Route::get('/test',[\App\Http\Controllers\TestController::class,'test']);
//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']);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?