Return post 表单提交后的值

Return post values of form after submit

如何检索 posted 表单的值,例如在控制器中我检查是否已经有任何用户名,如果它重定向回呈现表单的路由,但如何检索最后一个 post 值不再填写此表单的数据。

控制示例:

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

public function new(UserManagerInterface $userManager, EntityManagerInterface $entityManager, Request $request)
{


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






    $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 = $this->get('fos_user.user_manager');
    $checkUser = $userManager->findUserByUsername($username);
    if($checkUser) {
                $this->addFlash(
                    'danger',
                    'Login jest już zajęty!'
            );

            return $this->redirectToRoute('dystrybutor_pracownicy_add');
    }
    else {

通常,您应该将 $pracownik 对象传递给您重定向到的操作,然后在创建表单时将其作为参数传递。这可以通过多种方式完成,但我建议在您的控制器中使用 forward method

public function new(UserManagerInterface $userManager, EntityManagerInterface $entityManager, Request $request, Pracownik $pracownik = null){

    $pracownik = $pracownik ?? new Pracownik();
    $form = $this->createForm(PracownikType::class, $pracownik);
    ...
    if($checkUser) {
        $this->addFlash('danger','Login jest już zajęty!');

        return $this->forward('App\Controller\DystrybutorController::new', array(
            'pracownik'  => $pracownik
        ));
    }