PHPackages                             briceburg/silverstripe-pickerfield - 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. briceburg/silverstripe-pickerfield

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

briceburg/silverstripe-pickerfield
==================================

GridField based management of has\_one , has\_many , and many\_many relationship selection

0.9.0(10y ago)2441.3k29[6 issues](https://github.com/briceburg/silverstripe-pickerfield/issues)[2 PRs](https://github.com/briceburg/silverstripe-pickerfield/pulls)1BSD-3-ClausePHP

Since Nov 2Pushed 2y ago4 watchersCompare

[ Source](https://github.com/briceburg/silverstripe-pickerfield)[ Packagist](https://packagist.org/packages/briceburg/silverstripe-pickerfield)[ Docs](https://github.com/briceburg/silverstripe-pickerfield)[ RSS](/packages/briceburg-silverstripe-pickerfield/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (2)Versions (2)Used By (1)

silverstripe-pickerfield
========================

[](#silverstripe-pickerfield)

SilverStripe 3 GridField based management of has\_one , has\_many , and many\_many relationship selection

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

[](#requirements)

- SilverStripe &gt;= 3.1
- Andrew Short's GridFieldExtensions \[  \]

Why?
----

[](#why)

1. An efficient\* GridField based interface to manage relationship selections.
2. GridField doesn't appear to natively support has\_one relationships.
3. The ability to edit and create selected items.

Thanks to the great work of the SilverStripe team and Andrew Short's GridFieldExtensions, the development of this module was a bit easier. Be kind to them.

\* by efficient we needed ajax + pagination, as we couldn't load all records into a dropdown list for instance.

Usage Overview
--------------

[](#usage-overview)

Screenshots; ###overview [![overview](https://github.com/briceburg/silverstripe-pickerfield/raw/master/docs/screenshots/pickerfield.png?raw=true)](https://github.com/briceburg/silverstripe-pickerfield/blob/master/docs/screenshots/pickerfield.png?raw=true)\###link button search \[via GridFieldExtensions\] [![link button search [via GridFieldExtensions]](http://github.com/briceburg/silverstripe-pickerfield/blob/master/docs/screenshots/add-existing-search.png?raw=true)](http://github.com/briceburg/silverstripe-pickerfield/blob/master/docs/screenshots/add-existing-search.png?raw=true)

```
/***********************
	Mock DataObject
************************/

class Dog extends DataObject {
	static $db = array(
		'Title'				=> 'Varchar',
		// ....
	);

	static $has_one = array(
		'Breeder'			=> 'Breeder'
		'Dam'				=> 'Dog',
		'Sire'				=> 'Dog',
		// ....
	);

	static $has_many = array(
		'Owners'	=> 'Member',
		// ....
	);

// ....

}

/***********************
	Field Usage
************************/

// sortable field appropriate for selection of has_many and many_many objects
$field = new PickerField('Owners', 'Owners', $this->Owners(), 'Select Owner(s)', 'SortOrder');

// non-sortable version of the above
$field = new PickerField('Owners', 'Owners', $this->Owners());

// sortable field appropriate for the parent selection of a has_one relationship
$field = new HasOnePickerField($this, 'DamID', 'Selected Dam', $this->Dam(), 'Select a Dam');

// we also allow the ability to create and edit associated records via enableCreate, enableEdit methods.
$fields->addFieldsToTab('Root.Main', array(
  new HeaderField('Info','Info Blocks'),
  $field = new HasOnePickerField($this, 'AboutInfoBlockID', 'About Block', $this->AboutInfoBlock())
));

$field->enableCreate('Add Block')->enableEdit();

```

Bugs
----

[](#bugs)

For support or questions, please use the GitHub provided issue tracker;

-

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity37

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

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

Unknown

Total

1

Last Release

3897d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/490144?v=4)[Brice Burgess](/maintainers/briceburg)[@briceburg](https://github.com/briceburg)

---

Top Contributors

[![briceburg](https://avatars.githubusercontent.com/u/490144?v=4)](https://github.com/briceburg "briceburg (32 commits)")[![wilr](https://avatars.githubusercontent.com/u/101629?v=4)](https://github.com/wilr "wilr (12 commits)")[![wernerkrauss](https://avatars.githubusercontent.com/u/1043925?v=4)](https://github.com/wernerkrauss "wernerkrauss (2 commits)")[![dospuntocero](https://avatars.githubusercontent.com/u/123972?v=4)](https://github.com/dospuntocero "dospuntocero (1 commits)")[![gordonbanderson](https://avatars.githubusercontent.com/u/7060?v=4)](https://github.com/gordonbanderson "gordonbanderson (1 commits)")[![lozcalver](https://avatars.githubusercontent.com/u/1655548?v=4)](https://github.com/lozcalver "lozcalver (1 commits)")

---

Tags

silverstripegridfieldhas\_one

### Embed Badge

![Health badge](/badges/briceburg-silverstripe-pickerfield/health.svg)

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

###  Alternatives

[symbiote/silverstripe-gridfieldextensions

A collection of useful grid field components

951.9M272](/packages/symbiote-silverstripe-gridfieldextensions)[silverstripe/userforms

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

1371.1M85](/packages/silverstripe-userforms)[undefinedoffset/sortablegridfield

Adds drag and drop functionality to Silverstripe's GridField

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

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

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

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

46302.4k9](/packages/symbiote-silverstripe-advancedworkflow)[webbuilders-group/silverstripe-frontendgridfield

Wraps gridfield adding support for using it on the front-end.

2030.1k1](/packages/webbuilders-group-silverstripe-frontendgridfield)

PHPackages © 2026

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