PHPackages                             webbuilders-group/silverstripe-statefulunsavedlist - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. webbuilders-group/silverstripe-statefulunsavedlist

ActiveSilverstripe-module[Utility &amp; Helpers](/categories/utility)

webbuilders-group/silverstripe-statefulunsavedlist
==================================================

GridField component that allows unsaved relation lists for many\_many when managing existing objects on the right side of the relationship relationships to be stored in the GridField's state and session

2121[1 PRs](https://github.com/webbuilders-group/silverstripe-statefulunsavedlist/pulls)PHP

Since Mar 23Pushed 10y ago4 watchersCompare

[ Source](https://github.com/webbuilders-group/silverstripe-statefulunsavedlist)[ Packagist](https://packagist.org/packages/webbuilders-group/silverstripe-statefulunsavedlist)[ RSS](/packages/webbuilders-group-silverstripe-statefulunsavedlist/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

GridField Stateful Unsaved List
===============================

[](#gridfield-stateful-unsaved-list)

GridField component that allows unsaved relation lists for many\_many relationships when managing existing objects on the right side of the relationship to be stored in the GridField's state and session.

Maintainer Contact
------------------

[](#maintainer-contact)

- Ed Chipman ([UndefinedOffset](https://github.com/UndefinedOffset))

Requirements
------------

[](#requirements)

- SilverStripe Framework 3.1.x

Installation
------------

[](#installation)

```
composer require webbuilders-group/silverstripe-statefulunsavedlist

```

If you prefer you may also manually install:

- Download the module from here
- Extract the downloaded archive into your site root so that the destination folder is called statefulunsavedlist, opening the extracted folder should contain \_config.php in the root along with other files/folders
- Run dev/build?flush=all to regenerate the manifest

Usage
-----

[](#usage)

To use this module you need to use `StatefulGridField` instead of `GridField` when initializing your GridField. Note that at this time this module **does not** support has\_many relationships it only supports many\_many relationships. You may get undesired effects with a has\_many relationship.

\#####Before:

```
$fields->push(new GridField('ExampleRelation', 'Example Relation', $this->ExampleRelation(), GridFieldConfig_RelationEditor::create(10)));
```

\#####After:

```
$fields->push(new StatefulGridField('ExampleRelation', 'Example Relation', $this->ExampleRelation(), GridFieldConfig_RelationEditor::create(10)));
```

\##Note about 3rd party components Some 3rd party components may run into issues with this module since it modifies the address of the field to include a hash in the url. This has is used to remover the GridState from the session should it not be passed as part of the request. 3rd party components that utilize the link of the GridField may not be accounting for the case where the url has parameters already appended to the url. It's recommended that you file an issue on that components module, however you may also want to raise one here first for investigation.

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/4339255555acb728d7708895663e2a047a73c09f4394aa25bf038817e2d25d44?d=identicon)[WebbuildersGroup](/maintainers/WebbuildersGroup)

---

Top Contributors

[![UndefinedOffset](https://avatars.githubusercontent.com/u/1391558?v=4)](https://github.com/UndefinedOffset "UndefinedOffset (19 commits)")

### Embed Badge

![Health badge](/badges/webbuilders-group-silverstripe-statefulunsavedlist/health.svg)

```
[![Health](https://phpackages.com/badges/webbuilders-group-silverstripe-statefulunsavedlist/health.svg)](https://phpackages.com/packages/webbuilders-group-silverstripe-statefulunsavedlist)
```

###  Alternatives

[orklah/psalm-strict-types

Adds strict\_types declaration when the file is provably safe

16104.0k](/packages/orklah-psalm-strict-types)[ytake/php-presto-client

php prestodb client

1835.6k](/packages/ytake-php-presto-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
