Symfony 2, список пользователей

0

Я пытаюсь сделать выбор со всеми моими пользователями. У администратора есть его часть, чтобы изменить информацию от пользователей. Например, адрес электронной почты.

Мне нужно сделать выбор со всеми пользователями. Затем администратор выбирает пользователя, а затем он может изменить свою информацию.

Как я могу это сделать?

Спасибо С уважением

Я пытался это сделать:

<?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';
    }
}

Тогда у меня есть эта ошибка:

Попытка вызвать метод "get" в классе "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);

Но у меня всегда есть ошибка:

Ни свойство "public", ни один из методов "getPublic()", "public()", "isPublic()", "hasPublic()", "__get()" не существуют и имеют открытый доступ в классе "gestEntrSym\gestBundle\Entity\entrainementGroupe".

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

благодаря

  • 0
    $ this-> get работает, если вы находитесь в Контроллере, но теперь ваш родитель - это AbstractType .. $ this-> get функция не существует
  • 0
    Вставить менеджер сущностей или контейнер в класс формы stackoverflow.com/questions/21047431/…
Теги:
fosuserbundle

1 ответ

0

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню