<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/deferred-schema-loading-in-filament-v5-8-xwd2szp97" -->

---
title: Deferred Schema Loading in Filament v5.8 | daily.dev
description: Filament v5.8.0 adds deferred loading for child schemas so sections, tabs, wizard steps, and repeater items can render their fields in a separate request....
canonical: https://daily.dev/posts/deferred-schema-loading-in-filament-v5-8-xwd2szp97
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Deferred Schema Loading in Filament v5.8 | daily.dev
og:description: Filament v5.8.0 adds deferred loading for child schemas so sections, tabs, wizard steps, and repeater items can render their fields in a separate request....
og:url: https://daily.dev/posts/deferred-schema-loading-in-filament-v5-8-xwd2szp97
og:image: https://api.daily.dev/og/posts/XwD2SZp97.png
og:image:alt: Deferred Schema Loading in Filament v5.8
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Deferred Schema Loading in Filament v5.8

**[Laravel News](https://daily.dev/sources/ln)** · 5 min read · 0 upvotes · 0 comments

## Summary

Filament v5.8.0 adds deferred loading for child schemas so sections, tabs, wizard steps, and repeater items can render their fields in a separate request. Tables gain persistGroupInSession() to remember grouping across visits, and defaultGroup() now accepts a direction argument. Lifecycle hooks can be named after a trait, following Eloquent's boot{TraitName}() convention, so a trait hook no longer gets overridden by a page's own hook. Other additions include stat placeholders, minHeight()/maxHeight() for RichEditor and MarkdownEditor, custom export downloaders, and Boost guidelines converted into an Agent Skill.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://laravel-news.com/filament-5-8-0>

## Questions this post answers

### How do I defer loading of a collapsed section's fields in Filament 5.8?

Pass a Schema object instead of an array to the component's schema() method, then call deferLoading() on it. The section header renders immediately, but its content only loads in a new request once the user expands the section and it enters the viewport. This also works for tabs, wizard steps, repeater items, and builder blocks.

_Developers upgrading Filament admin panels can track new methods like this on daily.dev._

### How can I persist table grouping selection across page visits in Filament?

Call persistGroupInSession() on the table definition. Sort, search, filters, and columns could already be stored in the session, and as of Filament 5.8 the selected grouping is restored the next time the user visits. The update also fixes a Livewire hook that previously never fired due to a property name mismatch.

_Teams building Filament tables can keep up with session-persistence changes via daily.dev._

### How do I avoid a trait's lifecycle hook being overridden by a Filament page's own hook?

Suffix the hook name with the trait's name, following Eloquent's boot{TraitName}() convention, for example afterSaveHandlesDrafts() inside a HandlesDrafts trait. The page's own afterSave() runs first, then each trait-named hook runs afterward, so the same trait can be reused across pages without manual wiring.

_Developers composing reusable Filament traits can follow framework updates like this on daily.dev._

## Similar posts on daily.dev

- [Filament v5.3.0 Released with Deferred Tab Badges and Column Manager Improvements](https://daily.dev/posts/filament-v5-3-0-released-with-deferred-tab-badges-and-column-manager-improvements-pnbcfzefd) · Laravel News · 29 upvotes · 1 comments
- [Major performance improvements & security patches for Filament v4.12 and v5.7\!](https://daily.dev/posts/major-performance-improvements-security-patches-for-filament-v4-12-and-v5-7--0xwdnkz8a) · Laravel News · 5 upvotes · 1 comments
- [Backstage 1.55 Adds Scaffolder Task Recovery and Removes Deprecated Catalog APIs](https://daily.dev/posts/backstage-1-55-adds-scaffolder-task-recovery-and-removes-deprecated-catalog-apis-1rcyvdyrn) · InfoQ · 0 upvotes · 0 comments
- [Build Helpful Table Actions](https://daily.dev/posts/build-helpful-table-actions-e0hw8djbi) · Larablog · 0 upvotes · 0 comments
- [What's new in Filament v4.5?](https://daily.dev/posts/what-s-new-in-filament-v4-5--xcxswztzx) · Laravel News · 51 upvotes · 0 comments

---

Tags: [#php](https://daily.dev/tags/php), [#laravel](https://daily.dev/tags/laravel)

[View this post on daily.dev](https://daily.dev/posts/deferred-schema-loading-in-filament-v5-8-xwd2szp97)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Deferred Schema Loading in Filament v5.8","url":"https://daily.dev/posts/deferred-schema-loading-in-filament-v5-8-xwd2szp97","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/deferred-schema-loading-in-filament-v5-8-xwd2szp97"},"datePublished":"2026-10-27T13:20:02.809Z","dateModified":"2026-10-27T13:20:34.502Z","description":"Filament v5.8.0 adds deferred loading for child schemas so sections, tabs, wizard steps, and repeater items can render their fields in a separate request....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1108cd4fd624a9f12fb5ae452900a9e7?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1108cd4fd624a9f12fb5ae452900a9e7?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Laravel News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Laravel News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/ln","url":"https://daily.dev/sources/ln"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/deferred-schema-loading-in-filament-v5-8-xwd2szp97","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"php,laravel","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Laravel News","item":"https://daily.dev/sources/ln"},{"@type":"ListItem","position":3,"name":"Deferred Schema Loading in Filament v5.8"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/deferred-schema-loading-in-filament-v5-8-xwd2szp97#faq","mainEntity":[{"@type":"Question","name":"How do I defer loading of a collapsed section's fields in Filament 5.8?","acceptedAnswer":{"@type":"Answer","text":"Pass a Schema object instead of an array to the component's schema() method, then call deferLoading() on it. The section header renders immediately, but its content only loads in a new request once the user expands the section and it enters the viewport. This also works for tabs, wizard steps, repeater items, and builder blocks. Developers upgrading Filament admin panels can track new methods like this on daily.dev."}},{"@type":"Question","name":"How can I persist table grouping selection across page visits in Filament?","acceptedAnswer":{"@type":"Answer","text":"Call persistGroupInSession() on the table definition. Sort, search, filters, and columns could already be stored in the session, and as of Filament 5.8 the selected grouping is restored the next time the user visits. The update also fixes a Livewire hook that previously never fired due to a property name mismatch. Teams building Filament tables can keep up with session-persistence changes via daily.dev."}},{"@type":"Question","name":"How do I avoid a trait's lifecycle hook being overridden by a Filament page's own hook?","acceptedAnswer":{"@type":"Answer","text":"Suffix the hook name with the trait's name, following Eloquent's boot{TraitName}() convention, for example afterSaveHandlesDrafts() inside a HandlesDrafts trait. The page's own afterSave() runs first, then each trait-named hook runs afterward, so the same trait can be reused across pages without manual wiring. Developers composing reusable Filament traits can follow framework updates like this on daily.dev."}}]}
```

