CreateUser через контроллер FosUserBundle

Я попытаюсь добавить некоторые данные в базу данных и в том же элементе управления создать пользователя с помощью userManager. Я сделал что-то вроде этого, ничего не происходит, когда я отправляю эту форму, которую я визуализировал, страницу просто перезагружаю, и это даже не перенаправляет на маршрут, ничего. Есть идеи, что случилось?

РЕДАКТИРОВАТЬ

Мой контроллер сейчас выглядит так:

/**
     * @Route("/dystrybutor/pracownicy/add", name = "dystrybutor_pracownicy_add")
     */

    public function new(Request $request)
    {


    $pracownik = new Pracownik();

    $form = $this->createForm(PracownikType::class, $pracownik);

        return $this->render('dystrybutor_pracownicy/new.html.twig', array(
            'form' => $form->createView(),
        ));



        $form->handleRequest($request);





    if ($form->isSubmitted() && $form->isValid()) {
        $id = $this->getUser()->getDystrybutorId();

        $username = $form["username"]->getData();
        $password = $form["password"]->getData();
        $email = $form["email"]->getData();



        $userManager = $container->get('fos_user.user_manager');
        $user = $userManager->createUser();
        $user->setUsername($username);
        $user->setEmail($email);
        $user->setLocked(0); 
        $user->setEnabled(1); 
        $user->setPlainPassword($password);
        $user->addRole("ROLE_PRACOWNIK");



                try {


            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($user);
            $entityManager->flush();

        } catch (\PDOException $e) {

            $this->get('session')->getFlashBag()->add(
                'error', 'Wystąpił błąd przy udodawaniu użytkownika!'
            );
            return $this->redirect($this->generateUrl('dystrybutor_pracownicy'));

        }  


        return $this->redirectToRoute('dystrybutor_pracownicy');
    }
    }

Но все же ORM не добавляет пользователя в базу данных, ничего не произошло. Вот что я использую в этом контроллере:

use Doctrine\ORM\EntityRepository;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use App\Entity\Dystrybutor;
use App\Entity\Clients;
use App\Entity\Pracownik;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Security\Core\User\UserInterface;
use FOS\UserBundle\Model\UserManagerInterface;
use App\Form\PracownikType;
use FOS\UserBundle\Doctrine\UserManager;

И вот как я создаю свой собственный formType, я уверен, что проблема в том, что я не отправляю его должным образом, и контроллер не обрабатывает его.

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('username')
        ->add('name')
        ->add('surname')
        ->add('phone')
        ->add('password', RepeatedType::class, array(
                'type' => PasswordType::class,
                'invalid_message' => 'Hasła muszą być takie same.',
                'options' => array('attr' => array('class' => 'password-field')),
                'required' => true,
                'first_options'  => array('label' => 'Hasło'),
                'second_options' => array('label' => 'Powtórz hasło'),
            ))
        ->add('email')
        ->add('save', SubmitType::class, array('label' => 'Dodaj pracownika'));
}

После того, как я создаю системного пользователя, я хочу получить идентификатор этого пользователя и добавить «pracownik» и подключиться к пользователю, передающему идентификатор в «Pracownik» Entity и другие данные из формы. Но fos user не создает ... нет ни одного успеха, который ничего не массирует ...

flow 14.08.2018 13:24
JS - События опций формы
JS - События опций формы
В продолжение предыдущей статьи CSS - стили, связанные с вводом формы , в этой статье мы будем использовать JS для взаимодействия с формами, на этот...
CSS - Стили, связанные с вводом формы
CSS - Стили, связанные с вводом формы
Общими стилями ввода для форм являются Input (включая Text, Radio, checkbox), Select и Textarea, из которых Input относительно прост, поэтому в этой...
Создание многостраничной формы заявления о приеме на работу с помощью Angular
Создание многостраничной формы заявления о приеме на работу с помощью Angular
Наличие на корпоративном сайте форм заявлений о приеме на работу, или "трудовых анкет", экономит время и деньги как для соискателей, так и для...
0
1
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
/**
 * @Route("/user/new", name = "new_user")
 */
public function addUser(UserManagerInterface $userManager, EntityManagerInterface $entityManager) // use dependency injection as recommended by symfony
{
    $user = $userManager->createUser();

    $user->setPassword('1312adaSz');
    $user->setEmail('[email protected]');
    $user->setUsername('user6');
    $user->setEnabled(true);
    $user->setRoles(array_merge($user->getRoles(), array_diff(['ROLE_USER', 'ROLE_ADMIN'], $user->getRoles()))); // roles stored as array

    $entityManager->persist($user); // add user to queue
    $entityManager->flush();

Отредактировал свой вопрос, посмотрите как выглядит весь контроллер.

flow 14.08.2018 14:05

хорошо, ваш пример работает, но я думаю, что это что-то с запросом дескриптора ...

flow 14.08.2018 14:20

@flow, у вас есть возврат до handleRequest

TsV 14.08.2018 14:25

ЛОООООООЛ! :( безумие ... отлично работает: P есть ли хороший редактор кода для symfony?

flow 14.08.2018 14:34

Если мы здесь, не могли бы вы рассказать мне, как передать сообщения об успехах или ошибках после отправки формы?

flow 14.08.2018 14:40

например, если я отправил и верну false, я могу вернуть его false с некоторой информацией об ошибке ...? или успех все-таки ...

flow 14.08.2018 14:45

Большой! Вы знаете, как оставить значения в форме после возврата ошибки?

flow 14.08.2018 15:07

Другие вопросы по теме