0

Well i need to add rows to data table in doctrine. Of course i know how to create database and how to add some data without form. But i need to make symfony made page to add rows to databasy via created form.

This is route for form builder

    /**
 * @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(),
    ));
}

This is what is in twig file

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

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

And of course created entity.

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

I created this so far. but then i'm stuck. And i cant find any good hint to make this form write data to database.

1 Answer 1

2

You need to handle form submission like this :

/**
 * @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(),
    ));
}

Check the doc for more info : http://symfony.com/doc/current/forms.html#handling-form-submissions

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.