2016-11-16 8 views
0

私はsymfony 3を学び始めました。最初のプロジェクトでは単純なトートリストを選択しました。データフォームデータベースをチェックボックスに入れますsymfony 3

これで、私は自分のデータベースにユーザを作成して保存することができます。次に、私はそれらのためのタスクを作成することができます。

タスクを実行するユーザーを選択できるチェックボックスを作成します。

私はチェックボックスのフォーム($ temp_users varbiable)に私のユーザーデータベースからデータを置く必要があります。私はそれをする方法を知らない。

誰でも私にどのように表示することができますか?以下

は私のコードです:

public function createAction(Request $request) 
{ 

    $todo = new Todo; 

    $users = $this->getDoctrine() 
    ->getRepository('AppBundle:User') 
    ->findAll(); 

    $temp_users = array(); 
    foreach($users as $user) { 
    $temp_users[$user->getUsername()] = $user->getId(); 

}

$form = $this->createFormBuilder($todo) 
    ->add('name', TextType::class, array('attr' => array('class' => 'form-  control', 'style' => 'margin-bottom:15px'))) 


    ->add('wykona', CheckboxType::class, array('label' => $temp_users, 'required' => false,)) 

答えて

0

私はあなたがチェックボックスで何を意味するかわからない - あなたはいずれかを選択したい、または多くのユーザーされていますか?私は単純化のために1つだけを選択したいと思うつもりです(これを好みに合わせることができます)

あなたがしようとしているようなすべてのユーザーを取得する必要はありません。仕事(未テスト)

$form = $this->createFormBuilder($todo) 
    ->add('user', EntityType::class, array(
     'label' => 'Name', 
     'class' => AppBundle\Entity\User::class, 
     'choice_label' => 'name', //if you have a variable 'name' in your User entity, otherwise you will need a __toString method in the User entity 
    )); 
0

はあなたcreateActionの内側にこのコードを試してみてください。あなたのコード

$form = $this->createFormBuilder($todo) 
     ->add('users', EntityType::class, array(
       'class' => 'AppBundle:User', 
       'query_builder' => function (EntityRepository $er) { 
        return $er->createQueryBuilder('u') 
           ->orderBy('u.name', 'ASC') 
         }, 
       'choice_label' => 'name', 
       'multiple' => true, 
       'expanded' => true, 
      )); 

ADDこれはまた、あなたはcreateActionの内側にもう次のコードは必要ありません。あなたのコードからコードの下

REMOVE

$users = $this->getDoctrine() 
     ->getRepository('AppBundle:User') 
     ->findAll(); 

$temp_users = array(); 
foreach($users as $user) { 
$temp_users[$user->getUsername()] = $user->getId(); 
関連する問題