0

わかりました、皆さん、

整数フィールドを持つエンティティに基づいてテーブルを作成しました。

id、、、、、。user_id_ project_id_ stats_risks

stats今、フィールドのみでフォームを構築しようとしていますrisk。だから私はとで選択しuserIdますprojectId

$dql = "SELECT m FROM DevDashProjectBundle:Module m WHERE m.user ="
    .$options['user']->getId()."AND m.project ="
    .$options['project']->getId();
$results = $this->entityManager->createQuery($dql)->getArrayResult();  

>0ここで、値(または true または sth) を持つフィールド stats が選択され、0(または false) が選択されていないフォームを作成したいと考えています。次にフォームを編集した後、このフィールドに変更を投稿したいので、選択されたフィールドは1選択されていません0

@編集

私のエンティティは次のようになります。

 /**
 * @ORM\Column(name="stats", type="boolean", nullable=false)
 * 
 * @var boolean
 */
protected $stats=true;

ご覧のとおり、デフォルト値は true です。

コントローラーでは、次のような値を渡しています。

  $form = $this->createForm(new ModuleType($em), $module, array('user' => $user, 'project' => $project));

適切な行を選択するには、$user と $project が必要です。

次の ModuleType

        $builder
        ->add('module', 'checkbox', array(
            'label' => 'Stats',
        ));

table モジュールは、1 に設定された tinyint (Symfony によってブール値として解釈される) であるフィールド統計を取得しましたが、チェックボックスの統計はまだチェックされていません。

私もこのようにsthを試していました:

        $builder
        ->add('module', 'entity', array(
            'class' => 'DevDashProjectBundle:Module',
            'mapped' => true,
            'multiple' => true,
            'expanded' => true,
            'property' => 'stats',
            'query_builder' => function(EntityRepository $er) use ($options){
                return $er
                    ->createQueryBuilder('m')
                    ->where(
                        'm.user =' .$options['user']->getId().
                        'AND m.project=' .$options['project']->getId()
                    );
            }
        )
    );

user_id と project_id で統計を選択する必要があるためです。クエリは正しい値を返しますが、値が true のチェックボックスはまだチェックされていません。

4

1 に答える 1