2017-04-14 59 views
0

那么我需要添加行到数据表的教义。当然,我知道如何创建数据库以及如何添加一些没有形式的数据。但我需要让symfony制作页面,通过创建的表单将行添加到数据库。Symfony。使用表单将行添加到教义数据库。

这是表单生成

/** 
* @route("/lol") 
*/ 
public function newAction(Request $request) 
{ 
    // createFormBuilder is a shortcut to get the "form factory" 
    // and then call "createBuilder()" on it 

    $form = $this->createFormBuilder() 
     ->add('Pytanie', TextareaType::class) 
     ->add('Odpowiedz1', TextType::class) 
     ->add('Prawidlowa1', CheckboxType::class) 
     ->add('Odpowiedz2', TextType::class) 
     ->add('Prawidlowa2', CheckboxType::class) 
     ->add('Odpowiedz3', TextType::class) 
     ->add('Prawidlowa3', CheckboxType::class) 
     ->add('Odpowiedz4', TextType::class) 
     ->add('Prawidlowa4', CheckboxType::class) 
     ->getForm(); 

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

路线这是在树枝文件

{{ form_start(form) }} 
    {{ form_widget(form) }} 

<input type="submit" /> 
{{ form_end(form) }} 

过程中创造的实体和。

<?php 

namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* pytanie 
* 
* @ORM\Table(name="pytanie") 
* @ORM\Entity(repositoryClass="AppBundle\Repository\pytanieRepository") 
*/ 
class pytanie 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="Pytanie", type="text") 
    */ 
    private $pytanie; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="odpowiedz1", type="string", length=255) 
    */ 
    private $odpowiedz1; 

    /** 
    * @var bool 
    * 
    * @ORM\Column(name="prawidlowa1", type="boolean", nullable=true, unique=true) 
    */ 
    private $prawidlowa1; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="pytanie2", type="string", length=255) 
    */ 
    private $pytanie2; 

    /** 
    * @var bool 
    * 
    * @ORM\Column(name="prawidlowa2", type="boolean", nullable=true, unique=true) 
    */ 
    private $prawidlowa2; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="odpowiedz3", type="string", length=255) 
    */ 
    private $odpowiedz3; 

    /** 
    * @var bool 
    * 
    * @ORM\Column(name="prawidlowa3", type="boolean", nullable=true, unique=true) 
    */ 
    private $prawidlowa3; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="odpowiedz4", type="string", length=255) 
    */ 
    private $odpowiedz4; 

    /** 
    * @var bool 
    * 
    * @ORM\Column(name="prawidlowa4", type="boolean", nullable=true, unique=true) 
    */ 
    private $prawidlowa4; 


    /** 
    * Get id 
    * 
    * @return int 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set pytanie 
    * 
    * @param string $pytanie 
    * 
    * @return pytanie 
    */ 
    public function setPytanie($pytanie) 
    { 
     $this->pytanie = $pytanie; 

     return $this; 
    } 

    /** 
    * Get pytanie 
    * 
    * @return string 
    */ 
    public function getPytanie() 
    { 
     return $this->pytanie; 
    } 

    /** 
    * Set odpowiedz1 
    * 
    * @param string $odpowiedz1 
    * 
    * @return pytanie 
    */ 
    public function setOdpowiedz1($odpowiedz1) 
    { 
     $this->odpowiedz1 = $odpowiedz1; 

     return $this; 
    } 

    /** 
    * Get odpowiedz1 
    * 
    * @return string 
    */ 
    public function getOdpowiedz1() 
    { 
     return $this->odpowiedz1; 
    } 

    /** 
    * Set prawidlowa1 
    * 
    * @param boolean $prawidlowa1 
    * 
    * @return pytanie 
    */ 
    public function setPrawidlowa1($prawidlowa1) 
    { 
     $this->prawidlowa1 = $prawidlowa1; 

     return $this; 
    } 

    /** 
    * Get prawidlowa1 
    * 
    * @return bool 
    */ 
    public function getPrawidlowa1() 
    { 
     return $this->prawidlowa1; 
    } 

    /** 
    * Set pytanie2 
    * 
    * @param string $pytanie2 
    * 
    * @return pytanie 
    */ 
    public function setPytanie2($pytanie2) 
    { 
     $this->pytanie2 = $pytanie2; 

     return $this; 
    } 

    /** 
    * Get pytanie2 
    * 
    * @return string 
    */ 
    public function getPytanie2() 
    { 
     return $this->pytanie2; 
    } 

    /** 
    * Set prawidlowa2 
    * 
    * @param boolean $prawidlowa2 
    * 
    * @return pytanie 
    */ 
    public function setPrawidlowa2($prawidlowa2) 
    { 
     $this->prawidlowa2 = $prawidlowa2; 

     return $this; 
    } 

    /** 
    * Get prawidlowa2 
    * 
    * @return bool 
    */ 
    public function getPrawidlowa2() 
    { 
     return $this->prawidlowa2; 
    } 

    /** 
    * Set odpowiedz3 
    * 
    * @param string $odpowiedz3 
    * 
    * @return pytanie 
    */ 
    public function setOdpowiedz3($odpowiedz3) 
    { 
     $this->odpowiedz3 = $odpowiedz3; 

     return $this; 
    } 

    /** 
    * Get odpowiedz3 
    * 
    * @return string 
    */ 
    public function getOdpowiedz3() 
    { 
     return $this->odpowiedz3; 
    } 

    /** 
    * Set prawidlowa3 
    * 
    * @param boolean $prawidlowa3 
    * 
    * @return pytanie 
    */ 
    public function setPrawidlowa3($prawidlowa3) 
    { 
     $this->prawidlowa3 = $prawidlowa3; 

     return $this; 
    } 

    /** 
    * Get prawidlowa3 
    * 
    * @return bool 
    */ 
    public function getPrawidlowa3() 
    { 
     return $this->prawidlowa3; 
    } 

    /** 
    * Set odpowiedz4 
    * 
    * @param string $odpowiedz4 
    * 
    * @return pytanie 
    */ 
    public function setOdpowiedz4($odpowiedz4) 
    { 
     $this->odpowiedz4 = $odpowiedz4; 

     return $this; 
    } 

    /** 
    * Get odpowiedz4 
    * 
    * @return string 
    */ 
    public function getOdpowiedz4() 
    { 
     return $this->odpowiedz4; 
    } 

    /** 
    * Set prawidlowa4 
    * 
    * @param boolean $prawidlowa4 
    * 
    * @return pytanie 
    */ 
    public function setPrawidlowa4($prawidlowa4) 
    { 
     $this->prawidlowa4 = $prawidlowa4; 

     return $this; 
    } 

    /** 
    * Get prawidlowa4 
    * 
    * @return bool 
    */ 
    public function getPrawidlowa4() 
    { 
     return $this->prawidlowa4; 
    } 
} 

我创建了这个目前为止。但后来我卡住了。我无法找到任何好的提示,使这种形式写入数据库的数据。

回答

2

您需要处理表单提交这样的:

/** 
* @route("/lol") 
*/ 
public function newAction(Request $request) 
{ 

    // first create new empty object 
    $pytanie = new pitanie(); 

    // then you create your form with your object 
    $form = $this->createFormBuilder($pitanie) 
     ->add('Pytanie', TextareaType::class) 
     ->add('Odpowiedz1', TextType::class) 
     ->add('Prawidlowa1', CheckboxType::class) 
     ->add('Odpowiedz2', TextType::class) 
     ->add('Prawidlowa2', CheckboxType::class) 
     ->add('Odpowiedz3', TextType::class) 
     ->add('Prawidlowa3', CheckboxType::class) 
     ->add('Odpowiedz4', TextType::class) 
     ->add('Prawidlowa4', CheckboxType::class) 
     ->getForm(); 
    $form->handleRequest($request); 

    if ($form->isSubmitted() && $form->isValid()) { 
     // $form->getData() holds the submitted values 
     // but, the original `$pitanie` variable has also been updated 
     $pitanie = $form->getData(); 
     // ... perform some action, such as saving the task to the database 
     // for example, if Task is a Doctrine entity, save it! 
     // $em = $this->getDoctrine()->getManager(); 
     // $em->persist($task); 
     // $em->flush(); 

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

检查文档的详细信息: http://symfony.com/doc/current/forms.html#handling-form-submissions