LogEntryエンティティ( Loggable Behavioralから)を管理し、エンティティの復帰を処理して、管理者が一部のエンティティを古いバージョンに復元できるようにするための特別なフォームを作成したいと思います。
次のFormTypeを試して、その特定のLogEntryに割り当てられたエンティティのバージョンのリストを含むフォームを生成しました。
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Gedmo\Loggable\Entity\Repository\LogEntryRepository as EntityRepository;
class LogItemVersionsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
// In that point, I would need the entity assigned to that specific LogEntry to be able to load the diferent versions
$entity = $builder->getData();
//var_dump($data);
$builder
->add('version', 'entity', array(
'class' => 'Gedmo\Loggable\Entity\LogEntry',
'property' => 'version',
'query_builder' => function(EntityRepository $er) {
return $er->getLogEntriesQuery($entity);
},
))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Gedmo\Loggable\Entity\LogEntry'
));
}
public function getName()
{
return 'zashost_zaspanelbundle_logitemversionstype';
}
}
しかし、私には次の疑問があります。
- LogEntryには、ログに記録されたオブジェクトを取得するメソッドがありません。LogEntryを継承するミドルクラスを作成して、そのメソッドを追加する必要がありますか?LogEntryに割り当てられたエンティティは可変であることに注意してください。そのため、そのメソッドをLogEntryエンティティクラスに配置する必要がありますか?