laravel:eloquent-relationships
SkillDev toolsDefine clear relationships and load data efficiently; prevent N+1, use constraints, counts/sums, and pivot syncing safely
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the laravel:eloquent-relationships skill
What this skill tells your AI
The instructions your AI receives, as published by jpcaparas/superpowers-laravel in skills/eloquent-relationships-and-loading/SKILL.md and read by ahel’s review.
Model relationships express your domain; load only what you need.
Commands
# Typical loading
Post::with(['author', 'tags'])->withCount('comments')->paginate(20);
# Constrained eager loading
User::with(['posts' => fn($q) => $q->latest()->where('published', true)])->find($id);
# Pivot ops (many-to-many)
$post->tags()->sync([1,2,3]); // atomic replace
$post->tags()->syncWithoutDetaching([4]);
# Chunking large reads
Order::where('status', 'open')->lazy()->each(fn($o) => ...);
Patterns
- See
laravel:performance-eager-loadingfor N+1 detection and measurement - Use
whereHas()/has()to filter by related existence - Prefer
withCount,withSum,withMaxfor simple aggregates - Apply global / local scopes for recurring constraints
- Keep relationship names consistent and pluralized where appropriate
- Laravel 13+: serialized Eloquent collections (e.g., in queued jobs) now restore eager-loaded relations after deserialization, matching single-model behavior — don't rely on relations being absent
- Laravel 13+: model-level attributes like
#[DateFormat('Y-m-d')]and#[WithoutTimestamps]are available (seelaravel:php-attributes)
Signals
- GitHub stars
- 153
- Forks
- 2
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
laravel-eloquent-relationships- Source
- github.com/jpcaparas/superpowers-laravel