2014-11-20 2 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 \ Form \ 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".

Кто-нибудь знает почему?

Благодаря

+0

$ this-> get works, если вы находитесь в контроллере, но теперь вы родитель - это абстрактный тип. . $ this-> get function not exists – GianArb

+0

Администратор или контейнер объектов в класс формы http://stackoverflow.com/questions/21047431/symfony2-container-aware-form-type – Cheery

ответ

0

, если вы хотите иметь форму со всеми пользователями (100) и для каждой даты - это будет не удобно, поэтому если вы хотите изменить только один данные пользователя, вы можете использовать то же «загрузить всех пользователей» из «Основного использования» и выбрать пользователя из раскрывающегося списка вы загружаете пользовательские данные в полях (дата, идентификатор, имя и т. д.), изменяете требуемые, нажмите «Сохранить» и нажав «Сохранить» в контроллере/модели вы получите пользователь вы «выбрали» и данные для этого

вот как вы можете выбрать все пользователь из базы данных очень легко link,

вот ссылка, чтобы прочитать, как «слушать опцию выбора и загружать данные динамически» в forn link

Смежные вопросы