Sonata User Admin - Dependencia de campos personalizados
He extendido la clase SonataAdmin para FOSUser y agregué 2 campos personalizados (tipo de opción de origen de datos externo):Company
ySector
Me gustaria hacerSector
depende deCompany
Entonces, si el usuario selecciona una empresa, filtra los sectores disponibles.
Pensé en usar FormEvents para filtrar en la carga de la página, pero ni siquiera sé cómo obtener elCompany
Valor de la forma actual.
Aquí es una parte de mi costumbre.SectorType
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;
}
Así que la pregunta es:
Cómo obtener el seleccionadoCompany
de mi costumbreSectorType
?
Después de eso necesitaré poder actualizar el Sector con Ajax, pero esa será otra pregunta.