1

セットアップ:symfony 2.0、SonataAdminBundle 2.0

私には2つのエンティティがあります。会社とイベント。会社にはたくさんのイベントがあります。また、会社名と関連イベントを編集できる会社の管理者もいます。

データベースには2つの会社があり、会社ごとに3つのイベントがあります。

  1. Company1
    • event1
    • event2
    • event3
  2. Company2
    • event4
    • event5
    • event6

CompanyAdmin

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('name')
        ->add('events', 'sonata_type_collection', array(), array(
            'edit'      => 'inline',
            'inline'    => 'table'
        ))
    ;

    $this->getFormFieldDescription('events')
        ->setAssociationAdmin($this->getConfigurationPool()->getInstance('namespace.platform.admin.event_positions'));
}

EventPositionsAdmin

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('name')
        ->add('date')
    ;

    echo $this->getSubject().' ';
}

問題は、 Company1のecho $ this-> getSubject()event1event1event1を出力することです。

期待される結果:event1 event2 event3

4

1 に答える 1

0

そのように CompanyAdmin 内で現在の EventPosition を取得することはできません。親管理者 (CompanyAdmin) は EventPositionsAdminController::editAction を呼び出さないため、現在の ID は変更されず、フォームがどのように見えるかを知るために EventPositionsAdmin にアクセスするだけです (EventPositionsAdmin::configureFormFields())。

'sonata_type_collection' で EventPositionsAdmin を呼び出して、DoctrineORMBundle も使用していると思います。その場合は、そのテンプレートをカスタマイズして、Company のすべての EventPositions を操作するだけです。

->add('contatos','sonata_type_collection', array('template' => 'MyBundle:custom_collection_template.html.twig'), array(
                'edit' => 'inline',
                'inline' => 'table',
                'allow_add' => true,
                'prototype' => true,
                'allow_delete' => true
            ))
于 2012-10-07T08:13:33.027 に答える