Setting a $has_one relation
*
* Using here an example of an art gallery, with Exhibition pages,
* each of which has a Gallery they belong to. The Gallery class is also user-defined.
*
* static $has_one = array(
* 'Gallery' => 'Gallery',
* );
*
* public function getCMSFields() {
* $fields = parent::getCMSFields();
* $field = DropdownField::create('GalleryID', 'Gallery', Gallery::get()->map('ID', 'Title'))
* ->setEmptyString('(Select one)');
* $fields->addFieldToTab('Root.Content', $field, 'Content');
*
*
* As you see, you need to put "GalleryID", rather than "Gallery" here.
*
* Populate with Array
*
* Example model defintion:
*
* class MyObject extends DataObject {
* static $db = array(
* 'Country' => "Varchar(100)"
* );
* }
*
*
* Example instantiation:
*
* DropdownField::create(
* 'Country',
* 'Country',
* array(
* 'NZ' => 'New Zealand',
* 'US' => 'United States',
* 'GEM'=> 'Germany'
* )
* );
*
*
* Populate with Enum-Values
*
* You can automatically create a map of possible values from an {@link Enum} database column.
*
* Example model definition:
*
* class MyObject extends DataObject {
* static $db = array(
* 'Country' => "Enum('New Zealand,United States,Germany','New Zealand')"
* );
* }
*
*
* Field construction:
*
* DropdownField::create(
* 'Country',
* 'Country',
* singleton('MyObject')->dbObject('Country')->enumValues()
* );
*
*
* Disabling individual items
*
* Individual items can be disabled by feeding their array keys to setDisabledItems.
*
*
* $DrDownField->setDisabledItems( array( 'US', 'GEM' ) );
*
*
* @see CheckboxSetField for multiple selections through checkboxes instead.
* @see ListboxField for a single