将数据表格数据库放入复选框symfony 3 [英] put data form database into checkbox symfony 3

查看:232
本文介绍了将数据表格数据库放入复选框symfony 3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开始学习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();

}

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


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




将此代码添加到代码中。



  $ 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 / p>

REMOVE以下代码

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

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


I started learn symfony 3. For the first project i chose a simple totodlist.

So now i have possibility to create and save the user in my database. Next I can create a task for them.

I want to create a checkbox where can i choose a users to perform a task.

So i need put data from my user database to checkbox form ($temp_users varbiable). I don't know how to do it.

Can anybody show me how to do it.

below is my code:

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,))

解决方案

Try this code inside your createAction.

ADD this into your code

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

Also you don't need the following code anymore inside createAction.

REMOVE Below code from your code

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

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

这篇关于将数据表格数据库放入复选框symfony 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆