2014-11-20 75 views
0

我尝试与我的所有用户做一个选择。管理员有可能改变用户的信息。例如,电子邮件地址。symfony 2,用户列表

我需要做一个选择所有的用户,然后管理员选择一个用户,然后他可以改变他的信息。

我该怎么做?

感谢 问候

我试着这样做:

<?php 
  
namespace gestEntrSym\gestBundle\Form; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\Form\AbstractType; 
  
class entrainementGroupeForm extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
  
       $userManager = $this->get('fos_user.user_manager'); 
        $users = $userManager->findUsers(); 
        $builder 
            ->add('date'); 
    } 
  
    public function getName() 
    { 
        return 'entrainementGroupe'; 
    } 
} 

然后,我有这样的错误:

试图调用方法的类 “得到”“gestEntrSym \ gestBundle \表\ entrainementGroupeForm“在C:\ Users \ ale252 \ Dropbox \ wamp \ www \ gestEntrSym \ src \ gestEntrSym \ gestBundle \ Form \ entrainementGroupeForm.php 12.您是否打算调用:”getName“,”getParent“?

我的想法是将用户数组做为foreach,并为数组的所有值执行$ builder-> add('date')。

这只是一个日期类型的尝试,然后我可以做同样的选择类型。


我已经做了类似的事情:

<?php 
  
namespace gestEntrSym\gestBundle\Form; 
  
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\Form\AbstractType; 
use Doctrine\ORM\EntityManager; 
use gestEntrSym\UserBundle\Entity\User; 
  
class entrainementGroupeForm extends AbstractType { 
  
    /** 
     * The entity manager 
     * 
     * @var EntityManager 
     */ 
    private $users; 
  
    /** 
     * @param EntityManager 
     */ 
    public function __construct($users) { 
        $this->users = $users; 
    } 
  
    public function buildForm(FormBuilderInterface $builder, array $options) { 
  
  
        foreach ($this->users as $value) { 
//            var_dump($value); 
//            exit; 
            $builder->add('public', 'checkbox', array(
                'label' => $value->getNom(), 
                'required' => false, 
            )); 
        } 
    } 
  
    public function getName() { 
        return 'entrainementGroupe'; 
    } 
  
} 

然后在我的控制器:

$userManager = $this->get('fos_user.user_manager'); 
        $users = $userManager->findUsers(); 
  
        $entrainementGroupe = new entrainementGroupe(); 
//        var_dump($users[0]); 
//        exit; 
        $form = $this->createForm(new entrainementGroupeForm($users), $entrainementGroupe); 

但我一直错误:

无论是财产 “公共”也不存在其中一种方法“getPublic()”,“public()”,“isPublic()”,“hasPublic()”,“__get()”,并且在c lass“gestEntrSym \ gestBundle \ Entity \ entrainementGroupe”。

有人知道为什么吗?

感谢

,如果你想与所有用户(100)形式
+0

$ this-> get如果您在一个控制器,但现在你父母是一个AbstractType的作品。 。$ this-> get function not exists – GianArb 2014-11-20 21:33:11

+0

将实体管理器或容器注入表单类http://stackoverflow.com/questions/21047431/symfony2-container-aware-form-type – Cheery 2014-11-21 00:32:33

回答

0

,并为每一个日期 - 这是很不方便的,所以如果你想修改只是一个用户的信息,您可以使用从“基本用法”中选择相同的“加载所有用户”,用户从下拉列表中选择要加载的字段(日期,ID,名称等)中的用户数据,修改所需的用户,单击保存并单击保存在控制器/模型,你会得到你“choosen”用户和数据,它

这里是你如何从数据库中选择很容易link所有用户,

这里是链接,阅读如何“聆听选择选项并动态加载数据”在forn link