SuperAPI AI 工具集

laravel-eloquent

数据与分析

查看项目

更新于 10-15 21:48

技能介绍

用途:该技能用于在 Laravel 13 中处理数据库模型,围绕 Eloquent ORM 与 PHP 8.3 属性(Attributes)优先的写法提供指导,覆盖模型元数据、关联、查询、观察者与工厂。

主要能力:Laravel 13 将 PHP 8.3 Attributes 作为 Eloquent 模型的主要元数据机制,旧属性(如 $fillable、$hidden)仍兼容但不建议与对应属性混用。资料给出的属性映射包括:表名 #[Table('users')]、批量赋值 #[Fillable([...])]、隐藏/可见 #[Hidden([...])]/#[Visible([...])]、#[Guarded([...])]/#[Unguarded]、#[Appends([...])]、#[Touches([...])]、#[Connection('mysql')]、主键通过 #[Table(key: 'uuid', keyType: 'string', incrementing: false)]、关闭时间戳 #[WithoutTimestamps];Casts 没有属性,仍用 casts() 方法。13.x 新增 #[Refreshes(['slug'])](13.33+)与 refreshForUpdate()(13.27+)。

使用方式:资料要求实现前并行启动三个 Agent 调用:fuse-ai-pilot:explore-codebase 检查现有模型与属性混用情况;fuse-ai-pilot:research-expert 通过 Context7 核对 Laravel 13 Eloquent 与 Attributes 文档;mcp__context7__query-docs 查询属性模式(#[Fillable]、#[Table]、#[Scope])。实现后运行 fuse-ai-pilot:sniper 验证。

适用场景:新建或迁移 Eloquent 模型、定义关联与作用域、防止 N+1 查询、编写观察者与工厂、API 资源与事务处理等。

限制与规则:同一关注点不得同时使用属性与旧属性;模型自身 boot() 或 trait boot*() 内不得 new static()/new Model(),L13 会抛 LogicException;避免循环中懒加载、生产环境使用 #[Unguarded]、在访问器/修改器中查询、把业务逻辑放入模型。测试应使用工厂而非硬编码数据。资料未提供收费、价格或平台信息。