将数据表格数据库放入复选框symfony 3

时间:2016-11-16 08:45:58

标签: php database forms checkbox symfony

我开始学习symfony 3.对于第一个项目,我选择了一个简单的totodlist。

所以现在我有可能在我的数据库中创建并保存用户。接下来,我可以为他们创建一个任务。

我想创建一个复选框,在哪里可以选择用户来执行任务。

所以我需要将我的用户数据库中的数据放入复选框表单($ 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,))

2 个答案:

答案 0 :(得分:0)

我不确定您的复选框是什么意思 - 您想要选择一个还是多个用户?我会假设你只想为了简单而选择一个(你可以根据自己的喜好调整它)

您不需要让所有像您一样的用户尝试这样做,这样的事情应该有效(未经测试)

$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
    ));

答案 1 :(得分: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,
            ));

此外,您不再需要 createAction 中的以下代码。

删除代码中的代码

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

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