Maison > Questions et réponses > le corps du texte
J'essaie d'ajouter une option de couleur d'en-tête à la vue récapitulative de BlogPost. J'ai ajouté un champ d'énumération à la base de données et je souhaite ajouter un champ déroulant/sélection sous l'en-tête BlogPost. Je ne sais pas quel type de champ utiliser et comment le configurer correctement.
class BlogPostExtension extends DataExtension { private static $db = [ 'ArchiveDate' => 'Date', 'TitleColor' => "Enum(array('black','red','green'))" // works only with this syntax ]; private static $defaults = [ 'TitleColor' => 'black' ]; public function updateCMSFields(FieldList $fields) { $fields->push(new DateField('ArchiveDate', 'Archive date')); $fields->push(new DropdownField('TitleColor','Color')); // doesn't populate the dropdown field // $fields->push(new SelectField('TitleColor','Color')); // cannot instantiate abstract class 'SelectField' } }
P粉1139388802023-09-17 11:38:55
Si quelqu'un est intéressé, voici comment je l'ai résolu :
public function updateCMSFields(FieldList $fields) { $fields->push(new DateField('ArchiveDate', 'Archive date')); $fields->push(new DropdownField('TitleColor','Color', $this->getEnums())); } private function getEnums() { return singleton('SilverStripe\Blog\Model\BlogPost')->dbObject('TitleColor')->enumValues(); }