suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Silverstripe CMS BlogPost – DropdownField oder SingleSelectField aus Enum-Feld gefüllt

Ich versuche, der BlogPost-Zusammenfassungsansicht eine Option für die Kopfzeilenfarbe hinzuzufügen. Ich habe der Datenbank ein Aufzählungsfeld hinzugefügt und möchte unter dem BlogPost-Header ein Dropdown-/Auswahlfeld hinzufügen. Ich bin nicht sicher, welchen Feldtyp ich verwenden soll und wie ich ihn richtig einrichten soll.

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粉573943755P粉573943755442 Tage vor828

Antworte allen(1)Ich werde antworten

  • P粉113938880

    P粉1139388802023-09-17 11:38:55

    如果有人感兴趣 - 我是这样解决的:

    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();
    }

    Antwort
    0
  • StornierenAntwort