Administrador do Silverstripe: o menu suspenso "Possui um" é convertido em um campo de entrada comum após a importação
Estou tendo alguns problemas com o administrador do Silverstripe. Eu defini um modelo de banco de dados (veja as definições de classe abaixo) e, depois de fazer um desenvolvimento / desenvolvimento, tudo parece como o esperado. Quando tento adicionar um novo "pacote", todos os campos "tem um" estão lá com uma lista suspensa (veja a captura de tela 1). Também construí um importador que importa esses pacotes. Quando executado, tudo está bem, exceto quando você abre um pacote. Então 'Festival' está corretamente acoplado. Você pode ver o nome e selecionar a lista suspensa. "Trupe", por outro lado, misteriosamente se converteu em um campo de entrada que mostra apenas o ID do registro na outra tabela (veja a captura de tela 2).
Alguém sabe o que está acontecendo aqui? Existe algo que desencadeia esse comportamento que eu desconheço? Existe algo errado com meu código (sim, mas relacionado a esse problema? ;-))? Eu verifiquei a estrutura das tabelas e não há nada suspeito lá ...
Antes:
Depois de:
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';
}