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.
In Warehouse.php context:
use SilverShop\HasOneField\HasOneButtonField;
public function getCMSFields() {
$fields = parent::getCMSFields();
if($this->Address()->exists()){
$fields->addFieldsToTab("Root.Main", array(
ReadonlyField::create("add", "Address", $this->Address()->toString())
));
}
$fields->removeByName("AddressID");
$fields->addFieldToTab("Root.Main",
// $dataObject, 'RelationName', 'Optional title - would default to Relation Name'
HasOneButtonField::create($this, "Address") //here!
);
return $fields;
}
You must pass through the parent context ($this), so that the has_one relationship can be set by the GridFieldDetailForm
.