这是在symfony中使用表单的正确方法吗?

时间:2020-08-12 15:51:22

标签: php symfony

我想知道这段代码是否提出得当。这是一种表单,其动作是当前页面以外的另一页面,为此,我不得不在动作页面上定义另一表单。我不得不在操作页面(在app_lucky_number中)定义另一种形式,这听起来有点奇怪,所以我问这个问题。我想知道这是在symfony中使用表单的正确方法。 这是defaultController:

<?php
namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\HttpFoundation\JsonResponse;
use AppBundle\Form\GenusFormType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use AppBundle\Entity\Genus;

class DefaultController extends Controller
{
/**
 * @Route("/", name="homepage")
 */

public function newAction(Request $request)
{
    $gen=new Genus;
    $form = $this->createForm(GenusFormType::class,$gen,array(
        'action' => $this->generateUrl('app_lucky_number'),
        'method' => 'POST',
    ));

    $form->handleRequest($request);      
    return $this->render('genus/new.html.twig', [           
        'genusForm' => $form->createView()         
    ]);
} 

}
?>

这是操作页面(app_lucky_number)

<?php 
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use AppBundle\Form\GenusFormType;

class LuckyController extends Controller
{
/**
* @Route("lucky/number/", name="app_lucky_number")    
*/
public function number(Request $request)
{
    $form = $this->createForm(GenusFormType::class);     
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {               
        $genus = $form->getData();        
        $name=$genus->getName();
        $em = $this->getDoctrine()->getManager();        
        $em->persist($genus);        
        $em->flush();      
        return $this->render('genus/principal.html.twig',array('name'=>$name));    
    }
}
}
?>

0 个答案:

没有答案