SuperAPI AI 工具集

laravel-models

数据与分析

查看项目

更新于 10-15 23:58

技能介绍

用途:面向 Laravel 项目的 Eloquent 模型与数据库层规范,适用于创建或修改模型、关系、casts、观察者等场景。

主要能力与约定:模型代表数据库表与领域实体,应定义关系、casts 和简单访问器/修改器,不承载业务逻辑(业务逻辑放入 Actions)。推荐使用自定义查询构建器而非本地 scope。优先使用 PHP 属性,如 Laravel 12+ 的 #[UseEloquentBuilder],Laravel 13+ 的 #[Table]、#[ObservedBy]、#[UsePolicy]、#[UseFactory] 等。casts 可映射枚举、整数、布尔、DTO、datetime、array 等类型。模型可包含简单辅助方法(如 isPending、isCompleted、canBeCancelled),但取消订单等含事务、退款、通知的逻辑应放入 Action。观察者用于生命周期钩子(creating、created、updating、updated、deleted),在 AppServiceProvider 中通过 Order::observe(OrderObserver::class) 注册。可抽取 Concerns/Traits 复用行为,如 HasUuid。路由模型绑定支持隐式绑定、自定义键 {order:uuid} 及 resolveRouteBinding 自定义解析。

使用方式:默认应取消批量赋值保护,在 AppServiceProvider::boot() 中调用 Model::unguard(),不在模型中使用 $fillable 或 $guarded;前提是始终在 Form Request 中验证输入。模型目录建议 app/Models/ 下含 Concerns/ 与 Contracts/。测试可用 Pest 风格断言批量赋值、枚举 casts 和关系。

限制:资料未提供安装命令、版本兼容细节、性能数据或收费信息;部分示例(如 HasUuid 完整实现)标注为查看完整实现,未在资料中展开。