PHPackages                             fromholdio/silverstripe-minigridfield - 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. fromholdio/silverstripe-minigridfield

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

fromholdio/silverstripe-minigridfield
=====================================

2.0.0(10mo ago)75.9k↑445.5%43BSD-3-ClausePHP

Since Feb 17Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/fromholdio/silverstripe-minigridfield)[ Packagist](https://packagist.org/packages/fromholdio/silverstripe-minigridfield)[ Docs](https://github.com/fromholdio/silverstripe-minigridfield)[ RSS](/packages/fromholdio-silverstripe-minigridfield/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (7)Dependencies (4)Versions (20)Used By (3)

silverstripe-minigridfield
==========================

[](#silverstripe-minigridfield)

A field that preconfigures and gently themes a `GridField` to result in a "mini" inline grid field.

Two field types are included:

- `MiniGridField`
- `HasOneMiniGridField` - use this to manage an object in a has\_one relation

Auto-magically handles (preconfigures, with a few flags available to devs) orderable rows, add new multi class, versioning.

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

[](#requirements)

- [silverstripe-framework](https://github.com/silverstripe/silverstripe-framework) ^6.x
- [symbiote/silverstripe-gridfieldextensions](https://github.com/symbiote/silverstripe-gridfieldextensions) ^5.x
- [fromholdio/silverstripe-gridfield-limiter](https://github.com/fromholdio/silverstripe-gridfield-limiter) ^3.x
- [fromholdio/silverstripe-hasoneedit](https://github.com/fromholdio/silverstripe-hasoneedit) ^3.x

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

[](#installation)

`composer require fromholdio/silverstripe-minigridfield`

Screenshots
-----------

[](#screenshots)

[![Empty](docs/en/_images/00-empty.png)](docs/en/_images/00-empty.png)

[![MiniGrid](docs/en/_images/01-minigrid.png)](docs/en/_images/01-minigrid.png)

[![MiniGrid limited](docs/en/_images/02-minigrid-limit.png)](docs/en/_images/02-minigrid-limit.png)

[![HasOneMiniGrid](docs/en/_images/03-hasoneminigrid.png)](docs/en/_images/03-hasoneminigrid.png)

Complete Example
----------------

[](#complete-example)

This is an example showing a has one, has many and many many:

```
use Fromholdio\MiniGridField\Forms\HasOneMiniGridField;
use Fromholdio\MiniGridField\Forms\MiniGridField;
use SilverStripe\Admin\ModelAdmin;
use SilverStripe\ORM\DataObject;

class TestAdmin extends ModelAdmin {
    private static $menu_title = 'Test';
    private static $url_segment = 'test';
    private static $managed_models = [
        Radio::class,
        Owner::class,
        Presenter::class,
        Listener::class,
    ];
}

class Radio extends DataObject {
    private static $db = ['Title' => 'Varchar'];
    private static $has_one = ['Owner' => Owner::class];
    private static $has_many = ['Presenters' => Presenter::class];
    private static $many_many = ['Listeners' => Listener::class];
    public function getCMSFields() {
        $fields = parent::getCMSFields();

        $fields->replaceField('OwnerID', HasOneMiniGridField ::create('Owner', 'Owner', $this));

        $fields->removeByName('Presenters');
        $fields->insertAfter('Title', MiniGridField::create('Presenters', 'Presenters', $this));

        $fields->removeByName('Listeners');
        $fields->insertAfter('Title', MiniGridField::create('Listeners', 'Listeners', $this));

        return $fields;
    }
}

class Owner extends DataObject {
    private static $db = ['Title' => 'Varchar'];
    private static $has_many = ['Radio' => Radio::class];
}

class Presenter extends DataObject {
    private static $db = ['Title' => 'Varchar'];
    private static $has_one = ['Radio' => Radio::class];
}

class Listener extends DataObject {
    private static $db = ['Title' => 'Varchar'];
    private static $belongs_many_many = ['Radios' => Radio::class];
}

```

Replacing GridField universally
-------------------------------

[](#replacing-gridfield-universally)

For projects that you'd like to replace all GridFields with MiniGridField, you can use the [Injector](https://docs.silverstripe.org/en/4/developer_guides/extending/injector/#injector) to do so in a few lines of config:

```
SilverStripe\Core\Injector\Injector:
  SilverStripe\Forms\GridField\GridField:
    class: Fromholdio\MiniGridField\Forms\MiniGridField
```

Thanks &amp; Acknowledgements
-----------------------------

[](#thanks--acknowledgements)

-
-
-

There are a few more, can't find them right now, will list them here soon. I've worked hard on getting this working how I want it, but took direction from some of the wonderful peeps and their code above, thanks.

###  Health Score

50

—

FairBetter than 95% of packages

Maintenance69

Regular maintenance activity

Popularity30

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 85.7% 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.

###  Release Activity

Cadence

Every ~150 days

Recently: every ~156 days

Total

17

Last Release

326d ago

Major Versions

1.x-dev → 2.0.02025-09-19

### Community

Maintainers

![](https://www.gravatar.com/avatar/40e135ad117686bee39707c1d9286cc5e915e219c26a10d13858ca44d14f1eb0?d=identicon)[dizzystuff](/maintainers/dizzystuff)

---

Top Contributors

[![dizzystuff](https://avatars.githubusercontent.com/u/576903?v=4)](https://github.com/dizzystuff "dizzystuff (24 commits)")[![xini](https://avatars.githubusercontent.com/u/1152403?v=4)](https://github.com/xini "xini (2 commits)")[![christohill](https://avatars.githubusercontent.com/u/2646218?v=4)](https://github.com/christohill "christohill (1 commits)")[![swaibar](https://avatars.githubusercontent.com/u/1682011?v=4)](https://github.com/swaibar "swaibar (1 commits)")

---

Tags

silverstripegridfield

### Embed Badge

![Health badge](/badges/fromholdio-silverstripe-minigridfield/health.svg)

```
[![Health](https://phpackages.com/badges/fromholdio-silverstripe-minigridfield/health.svg)](https://phpackages.com/packages/fromholdio-silverstripe-minigridfield)
```

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1321.1M92](/packages/silverstripe-userforms)[symbiote/silverstripe-gridfieldextensions

A collection of useful grid field components

951.9M284](/packages/symbiote-silverstripe-gridfieldextensions)[dnadesign/silverstripe-elemental

Elemental pagetype and collection of Elements

1101.1M339](/packages/dnadesign-silverstripe-elemental)[undefinedoffset/sortablegridfield

Adds drag and drop functionality to Silverstripe's GridField

931.3M52](/packages/undefinedoffset-sortablegridfield)[unclecheese/betterbuttons

Adds new form actions and buttons to GridField detail form for usability enhancements.

84557.6k19](/packages/unclecheese-betterbuttons)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46304.8k9](/packages/symbiote-silverstripe-advancedworkflow)

PHPackages © 2026

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