topclaudy/compoships + staudenmeir/eloquent-eager-limit
Caution
staudenmeir/eloquent-eager-limit has been merged into the core since Laravel 11. Therefore, it should have been enough to only install topclaudy/compoships... However, as of March 2025, PR topclaudy/compoships#180 has not yet been merged. Once we have seen this merged, we will abandon the package.
- PHP:
^8.0 - Laravel:
^9.0 || ^10.0 - Compoships:
^2.0.4 - Eloquent Eager Limit:
^1.7.1
composer require mpyw/compoships-eager-limit
<?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.
