AgentSkillsCN

Laravel Eloquent

针对性能优化与查询复用,探索 Eloquent ORM 的进阶模式。

SKILL.md
--- frontmatter
name: Laravel Eloquent
description: Advanced Eloquent ORM patterns for performance and query reuse.
metadata:
  labels: [laravel, eloquent, orm, database]
  triggers:
    files: ['app/Models/**/*.php']
    keywords: [scope, with, eager, chunk, model]

Laravel Eloquent

Priority: P0 (CRITICAL)

Structure

text
app/
└── Models/
    ├── {Model}.php
    └── Scopes/         # Advanced global scopes

Implementation Guidelines

  • N+1 Prevention: Always use with() or $with for relationships.
  • Eager Loading: Set strict loading via Eloquent::preventLazyLoading().
  • Reusable Scopes: Define scopeName methods for common query filters.
  • Mass Assignment: Define $fillable and use $request->validated().
  • Performance: Use chunk(), lazy(), or cursor() for large tasks.
  • Casting: Use $casts for dates, JSON, and custom types.

Anti-Patterns

  • N+1 Queries: No lazy loading: Never query relationships in loops.
  • Fat Models: No business logic: Models are for data access only.
  • Magic Queries: No raw SQL: Use Query Builder or Eloquent.
  • Select *: No excessive data: Select only required columns.

References