Sonata User Admin - Benutzerdefinierte Feldabhängigkeit
Ich habe die SonataAdmin-Klasse für FOSUser erweitert und 2 benutzerdefinierte Felder hinzugefügt (Auswahltyp aus externer Datenquelle):Company
undSector
ich würde es gerne machenSector
abhängig vonCompany
Wenn der Benutzer eine Firma auswählt, werden die verfügbaren Sektoren gefiltert.
Ich habe zwar über FormEvents zum Filtern beim Laden der Seite nachgedacht, aber ich weiß nicht einmal, wie ich das bekommen sollCompany
Wert des aktuellen Formulars.
Hier ist ein Teil meiner SitteSectorType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->addEventListener(FormEvents::PRE_SET_DATA
, function(FormEvent $event) {
$data = $event->getData();
$form = $event->getForm();
// Need to get the company value here if set
});
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'choices' => $this->getSectors(),
));
}
public function getSectors()
{
$sects = array();
// Need to pass the selected company value to my getList
// (which gets the list of sector as you can imagine)
if (($tmp_sects = $this->ssrs->getList('Sector'))) {
foreach ($tmp_sects as $sect) {
$label = $sect['id'] ? $sect['label'] : '';
$sects[$sect['id']] = $label;
}
}
return $sects;
}
Die Frage ist also:
Wie bekomme ich die ausgewähltenCompany
von meinem BrauchSectorType
?
Danach muss ich in der Lage sein, den Sektor mit Ajax aufzufrischen, aber das wird eine andere Frage sein