silvershop / silverstripe-hasonefield
Edit a has_one relationship using a GridField, triggered by clicking a button.
Installs: 375 402
Dependents: 31
Suggesters: 1
Security: 0
Stars: 34
Watchers: 7
Forks: 31
Open Issues: 3
Type:silverstripe-vendormodule
Requires
- silverstripe/framework: ^4.0 || ^5.0
- silverstripe/vendor-plugin: ^1.0 || ^2.0
Requires (Dev)
- phpunit/phpunit: ^5.7
Replaces
This package is auto-updated.
Last update: 2024-12-04 18:37:01 UTC
README
Allows you to create a CMS button for creating and editing a single related object. It is actually a grid field, but just looks like a button.
Installation
composer require silvershop/silverstripe-hasonefield
Usage
use SilverShop\HasOneField\HasOneButtonField; private static $has_one = [ 'Address' => 'Address' ]; public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab("Root.Main", HasOneButtonField::create($this, "Address") ); return $fields; }
You must pass through the parent context ($this), so that the has_one
relationship can be set by the GridFieldDetailForm
.
Filtering Results
To filter the results shown in the picker use HasOneAddExistingAutoCompleter::setSearchList
.
$property = HasOneButtonField::create( $this, 'Address' ); $property ->getConfig() ->getComponentByType(HasOneAddExistingAutoCompleter::class) ->setSearchList(Property::get()->filter("Country", "GB")); $fields->addFieldToTab( 'Root.Main', $property );