Администратор сонаты для абстрактного класса: Как фильтровать по свойству подкласса - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть класс администратора Sonata для моей абстрактной сущности. И в представлении списка я перечисляю оба дочерних объекта (клиент, сотрудник). Я могу отфильтровать их по свойствам абстрактного класса (например, по электронной почте). это хорошо работает.

Но как я могу добавить фильтр выбора (или любой другой) со свойством одного из дочерних объектов? в этом примере я хотел бы отфильтровать по клиенту-> город.

мне кажется, что это общая проблема, но я пока не нашел решения.


// parent class
abstract class Person {
 $email;
  ...
}

// child class
class Client extends Person {
 $city;
  ...
}

// child class
class Employee extends Person {
  ...
}


class PersonAdmin extends AbstractAdmin
{

  protected function configureDatagridFilters(DatagridMapper $datagridMapper)
  {
        $datagridMapper
            ->add('email')
            ->add('city'); // throw an error as it doesn't exist in the class Person
  }

...
}
...