ツリーのメインエンティティ、ユーザー、ワークグループ、およびプロジェクトがあります。それらの間にコラボレーションと呼ばれる中間エンティティがあります。実際、ユーザー情報とワークグループ情報を含むプロジェクトを追加するためのフォームを提供できます。フォーム内の接続ユーザーでワークグループをフィルタリングします。
ワークグループの所有者を知るために、ユーザーとワークグループの間にも関係があります。(ユーザーはワークグループで 1 対多、ワークグループはユーザーで多対 1)
# MyNiceBundle/Form/Type/CollaborationType.php
class CollaborationType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('project', new ProjectType());
$builder->add('participant', 'entity', array(
'class' => 'MyNiceBundle:User',
'property' => 'email',
'multiple' => false,
'expanded' => true
));
$builder->add('workgroup', 'entity', array(
'class' => 'MyNiceBundle:Workgroup',
'property' => 'name',
'multiple' => false,
'expanded' => true
));
}
}
前もって感謝します。