Php 提交后返回表单的post值

Php 提交后返回表单的post值,php,forms,symfony,symfony4,Php,Forms,Symfony,Symfony4,如何检索已发布表单的值,例如,在控制器中,如果重定向回呈现表单的路由,则检查是否已有任何用户名,但如何检索上次发布的值以不再填充此表单的数据 控件的示例: /** * @Route("/dystrybutor/pracownicy/add", name="dystrybutor_pracownicy_add") */ public function new(UserManagerInterface $userManager, EntityManagerInterface $enti

如何检索已发布表单的值,例如,在控制器中,如果重定向回呈现表单的路由,则检查是否已有任何用户名,但如何检索上次发布的值以不再填充此表单的数据

控件的示例:

    /**
 * @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对象传递给重定向到的操作,然后在创建表单时将其作为参数传递。这可以通过很多方法实现,但我建议在控制器中使用:

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
        ));
    }

你看起来做事很辛苦。大多数情况下,您不会在验证问题上重定向。也许再看一遍文档中的示例。是的,我知道有可能用另一种方法来验证它是的,太棒了。确切地说,我需要的是$pracownik=$pracownik??新Pracownik();