
本文共 1382 字,大约阅读时间需要 4 分钟。
Laravel 模型创建指南
在Laravel中创建模型,是开发过程中非常基础却又不可或缺的操作。本文将详细介绍模型创建的方法以及相关配置。
1. 创建模型
使用php artisan make:model
命令即可快速创建模型。运行以下命令:
php artisan make:model User
建议在命令中添加-m
或--migration
标志参数,这样会自动生成对应的数据库迁移文件。
注意:如果没有指定表名,模型默认将与数据表名称对应。例如,
User
模型会与users
表绑定。
2. 定义表名
如果需要将模型绑定到非默认的表,可以通过$table
属性自定义:
class User extends Model{ protected $table = 'user';}
3. 主键配置
模型默认使用id
作为主键。你可以通过$primaryKey
属性自定义主键名称:
protected $primaryKey = 'user_id'; // 自定义主键名称
主键属性:
- 默认主键类型为
int
,可以通过$incrementing = false
禁止自增。 - 设定主键类型为非整型字段。
4. 时间戳管理
默认情况下,Eloquent会自动管理created_at
和updated_at
时间字段。如果需要禁用这些字段,可以设置$timestamps
属性:
public $timestamps = false; // 禁用自动管理时间字段
时间格式自定义:如果需要自定义时间格式,可以设置$dateFormat
属性:
protected $dateFormat = 'Y-m-d H:i:s'; // 示例自定义日期格式
5. 可写入属性(可选)
通过$fillable
定义可以 mass assign 的字段,$guarded
则强制保护字段不允许 mass assign:
protected $fillable = ['name']; // 白名单:可通过 mass assign 赋值protected $guarded = ['password']; // 黑名单:不可通过 mass assign 赋值
注意:这些设置仅适用于create
、save
等方法。如果需要自定义其他行为,可以通过事件监听来实现。
6. 数据库连接设置
如果需要为模型指定不同的数据库连接,可以使用$connection
属性:
protected $connection = 'test'; // 例如,指定数据库连接名称
7. 高级配置
· 关系定义:通过定义关系(如belongsTo
、hasMany
等)实现模型间关联。· 模型事件:通过定义生命周期事件(boot
、created
等)自定义模型行为。· 迁移手动执行:如果选择手动执行迁移,可以通过php artisan migrate
运行。
8. 注意事项
· 数据安全:通过设置$fillable
和$guarded
,防止未授权数据写入或修改。· 时间戳字段:如之前所述,默认字段命名如create_time
和update_time
,请确保数据库中有相应字段。· 数据库前缀:如果数据库表前缀设置了,要在模型中注明$table
前缀。
通过以上配置,你可以根据需求灵活定制模型行为,充分发挥Eloquent的强大功能。
发表评论
最新留言
关于作者
