Администратор Silverstripe: выпадающий список «Имеет один» преобразуется в обычное поле ввода после импорта
У меня проблемы с администратором Silverstripe. Я определил модель базы данных (см. Определения классов ниже), и после того, как я выполнил разработку / сборку, все выглядит так, как ожидалось. Когда я пытаюсь добавить новыйпакет» все "есть один поля там с раскрывающимся списком (см. снимок экрана 1). Я также создал импортер, который импортирует эти пакеты. При запуске все выглядит нормально, кроме случаев, когда вы открываете пакет. Затем 'фестиваль» правильно связано. Вы можете увидеть имя, и вы можете выбрать раскрывающийся список. "Труппа»с другой стороны, таинственным образом преобразуется в поле ввода, в котором отображается только идентификатор записи в другой таблице (см. снимок экрана 2).
Кто-нибудь знает, что здесь происходит? Есть ли что-то, что вызывает такое поведение, о котором я не подозреваю? Что-то не так с моим кодом (да, но связан с этой проблемой? ;-))? Я проверил структуру таблиц, и там нет ничего подозрительного ...
До:
После:
Package.php
class Package extends DataObject {
public static $db = array(
'Number' => 'Int',
'Title' => 'Varchar(255)',
'Description' => 'HTMLText',
'Credits' => 'HTMLText',
);
public static $has_many = array(
'Events' => 'Event',
);
public static $many_many = array(
'Genres' => 'Genre',
);
public static $has_one = array(
'Festival' => 'Festival',
'Troupe' => 'Troupe',
);
}
class PackageAdmin extends ModelAdmin {
public static $managed_models = array('Package'); // Can manage multiple models
static $url_segment = 'packages'; // Linked as /admin/packages/
static $menu_title = 'Packages';
}
Troupe.php
class Troupe extends DataObject {
public static $db = array(
"Name" => "Varchar(255)",
"Description" => "HTMLText",
"Url" => "Varchar(255)",
);
public static $has_many = array(
'Packages' => 'Package.Troupe',
);
}
class TroupeAdmin extends ModelAdmin {
public static $managed_models = array('Troupe','Package'); // Can manage multiple models
static $url_segment = 'troupes'; // Linked as /admin/troupes/
static $menu_title = 'Troupes';
}
Festival.php
class Festival extends DataObject {
public static $db = array(
'Name' => 'Varchar(255)',
'Description' => 'HTMLText'
);
public static $has_many = array(
'Packages' => 'Package.Festival'
);
}
class FestivalAdmin extends ModelAdmin {
public static $managed_models = array('Festival','Package'); // Can manage multiple models
static $url_segment = 'festivals'; // Linked as /admin/festivals/
static $menu_title = 'Festivals';
}