Соната | Пользовательское поле в ListMapper

Я ищу в Sonata doc, но не могу найти, возможно ли это.

У меня есть вопрос сущности с отношением один ко многим с ответом.

В моем ListMapper для QuestionAdmin я хотел бы сделать что-то вроде:

$listMapper
  ->addIdentifier('title')
  ->add('countAnswers', IntegerType::class, array(
     'action', 'getCountAnswers'
        )
  );

Я знаю, что код ниже wtf, но я понятия не имею, возможно ли это или как это сделать?


person Aximem    schedule 11.05.2016    source источник


Ответы (1)


если вы просто хотите отобразить значение в списке администратора, вы можете расширить свой объект с помощью простой функции getAnswersCount и сослаться на это поле (функцию) в администраторе:

пример ссылки:

AppBundle\Entity\Questions

public function getAnswersCount() 
{
    return $this->getAnswers()->count();
}

Администратор вопросов

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('title')
        ->add('answersCount')
    ;
}
person lordrhodos    schedule 12.05.2016
comment
Не знал, что это возможно. TY лордродос - person Aximem; 16.05.2016
comment
Можете ли вы вызвать метод Entity, которому нужен аргумент? Например, getsAnswersCount($id), если у сущности есть внутренняя логика? - person CristianCV; 20.09.2018