laravel笔记:使用Eloquent生成模板类以及命名规则
Eloquent是laravel中用来实数据库模型化的工具,使用eloquent生成模型类,与数据表形成映射关系,之后在操作数据库时就不需要手工进行数据的边接和查义语句的编写,只需写php对模型类进行操作即可。
那么在laravel中,当我们在.env中配置好数据库后,laravel是否会自动生成建议映射并生成模型文件呢? 答案是不会的。
了解这个问题,其实就是了解Eloquent的工作过程。
通常情况下,你需要手工使用Artisan命令来生成Model,但这个命令可以非常智能地根据你的数据表结构进行“适配”,而不是完全“自动生成”。
系统不会在你创建数据表迁移后自动为你创建模型。你需要手动执行一个命令来创建模型文件,然后可以手动或利用命令选项来让它与特定的数据表关联。
核心概念:为什么不是全自动?
Laravel 遵循 “约定优于配置” 的原则。如果你遵循它的约定,几乎不需要额外配置。
模型命名约定:模型类名的单数、大驼峰形式对应数据表名的复数、蛇形命名。
例如:模型 Flight 会自动对应到数据表 flights。
模型 UserProfile 会自动对应到数据表 user_profiles。
主键约定:默认每张表的主键是 id,且是自增的整数。
时间戳约定:默认期望存在 created_at 和 updated_at 两个时间戳字段。
如果你遵循了这些约定,你只需要生成一个空的模型,它就能自动工作。如果你没有遵循约定,则需要在模型文件中手动指定表名、主键等属性。
如果我们有一个posts表,那么执行php artisan make:model Post即可app/Models/ 目录下生成 Post.php 文件。
高级技巧:一站式生成
Laravel 的 Artisan 命令非常强大,可以让你在创建模型的同时顺便创建迁移、控制器等资源,大大提高效率。
最常用的组合命令:
bash
php artisan make:model Post -mcr
-m 或 --migration:同时为模型创建一个迁移文件 (create_posts_table)。
-c 或 --controller:同时创建一个资源控制器 (PostController)。
-r 或 --resource:指示控制器应该是资源控制器(包含 index, create, store, show, edit, update, destroy 等方法)。
执行上面的命令后,你会一次性得到:
模型文件 app/Models/Post.php
迁移文件 database/migrations/xxxx_create_posts_table.php
控制器文件 app/Http/Controllers/PostController.php
然后你只需要去编辑迁移文件来定义表结构,再运行 php artisan migrate 即可。
建立好模型类文件,就可以在控制器或者路由中使用它了。
