2014-11-20 120 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