Laravel Eloquent limit results for relationship

Posted 2 years ago by twiggy99

I have a simple set-up of Albums and Images, each album has many images. I can get all the data fine but I want to limit the returned number of images to 3. I have tried passing a closure like so:

Album::with(['images' =>  function($query) { $query->take(3);}])->get();

This does limit the number of images to 3 but it limits the total count of images to 3 but I want to limit each album to 3 images. So the first album will show 3 images as expected but all the other albums have no images.

I have tried adding a new method to my model like so:

    public function limitImages()
    {
        return $this->hasMany('App\Image')->limit(3);
    }

And I call this in my controller:

    Album::with('limitImages')->get();

But this doesn't limit the image count returned at all

Please sign in or create an account to participate in this conversation.

Reply to

Use Markdown with GitHub-flavored code blocks.