Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

bigsio's avatar

Navigating a recordset in Filament in a view/infolist

Hello,

we know that the basic structure of a Resource in Filament is to have a Table with records, then you click on "View" or "Edit" on one record, and this opens the View/Infolist or Form for that record. Then you dismiss it and go back to the datatable.

What I need to achieve is to have a structure that reminds the one of Microsoft Access' Forms: I would like to have a view/infolist showing one record with all its fields, then you can go/paginate to other records just pushing a "Next" or "Previous" button, thus filling the View with the next/previous record on the database:

a stupid example to clarify, imagine this is a View or Infolist:

Id: 1

Name: John | Surname: Smith

Eyes: brown | Weight: 58

<<First <Previous 1 - 2 - ... - 58 Next> Last>>

(I click on Next)

Id: 2

Name: Martin | Surname: Whites

Eyes: green | Weight: 70

<<First <Previous 1 - 2 - ... - 58 Next> Last>>

Although I looked in all the Filament documentation, forum and stackoverflow, I couldn't find an example on how to do this "simple" thing. I would be very grateful if someone can point me out in the right strategy to achieve this particular way to navigate/paginate between records of a Resource in a View/Infolist, so not using a Table.

Thank you for any hint.

0 likes
3 replies
cdevelop's avatar

Were you ever able to solve this? I'm looking to do the same thing.

bigsio's avatar
Level 1

Unfortunately not. I still have to realize that part of the project, but it seems there's no way to do that with Filament tools, even if I'm a bit astonished nobody ever needed that.

I suppose I will have to create a custom view, that is a normal blade view: https://filamentphp.com/docs/3.x/panels/resources/viewing-records#custom-view then add the pagination between records like you would do in a plain Laravel blade.

Or, create some Actions in the View/Infolist that navigates to the previous/next record of the recordset.

Hoping these can be starting points for your investigation. Any feedbacks from you will be appreciated.

JamieCee20's avatar

@bigsio Yeah you have to write something custom, I've just been searching for something like this myself, but was unable to get any articles or documentation. So in my case, I had a class that extends Page and implements HasInfolists.

Then I make sure to use the WithPagination trait.

My view looked like this


<x-filament-panels::page>
    {{ $this->productInfolist }}
    <x-filament::pagination :paginator="$this->data['spend']" />
</x-filament-panels::page>

And in my Page, the productInfolist function returns the infolist itself.

Please or to participate in this conversation.