Package
Mpyw Compoships Eager Limit
topclaudy/compoships + staudenmeir/eloquent-eager-limit
Compoships Eager Limit

topclaudy/compoships + staudenmeir/eloquent-eager-limit
[!WARNING] This package is abandoned and no longer maintained.
staudenmeir/eloquent-eager-limit has been merged into the core since Laravel 11, and PR topclaudy/compoships#180 — which adds native
limit()/offset()support to composite-key eager loads — was merged on 2025-10-03 and shipped in topclaudy/compoships^3.0. Both pieces this wrapper used to glue together are now available upstream, so the package is no longer needed.Migration: depend on
topclaudy/compoships^3.0directly and calllimit()inside your eager-load closures. On Laravel 11+ no extra trait is required.$posts = Post::with(['authorComments' => fn ($query) => $query->limit(3)->offset(1)])->get();
Requirements
- PHP:
^8.0 - Laravel:
^9.0 || ^10.0 - Compoships:
^2.0.4 - Eloquent Eager Limit:
^1.7.1
Installing
composer require mpyw/compoships-eager-limit
Usage
<?php namespace App; use Illuminate\Database\Eloquent\Model;use Mpyw\ComposhipsEagerLimit\ComposhipsEagerLimit; class Post extends Model{ use ComposhipsEagerLimit; public function comments() { return $this->hasMany(Comment::class); } public function authorComments() { return $this->hasMany(Comment::class, ['post_id', 'user_id'], ['id', 'user_id']); }}
<?php namespace App; use Illuminate\Database\Eloquent\Model;use Mpyw\ComposhipsEagerLimit\ComposhipsEagerLimit; class Comment extends Model{ use ComposhipsEagerLimit;}
$posts = Post::with(['authorComments' => function ($query) { $query->limit(3)->offset(1);}])->get();
For more details, visit each base package repository.