簡體   English   中英

Symfony3 / PHP7表單提交不起作用

[英]Symfony3/PHP7 Form submit doesn't work

我正在嘗試創建一個簡單的表單,該表單可以執行數據庫查詢並在數據庫中插入一些數據。 但是問題在於表單沒有提交(?), $form->isSubmitted()始終為假。

use Symfony\Component\Form\Extension\Core\Type\TextType as TextTypeForm;
use Symfony\Component\Form\Extension\Core\Type\SubmitType as SubmitTypeForm;

public function renderFormAction(Request $request){
    $task = new Task();
    $task->setTitle('Keyboard');
    $task->setDescription('Ergonomic and stylish!');

    $form = $this->createFormBuilder($task)
        ->setMethod("POST")
        ->add('title', TextTypeForm::class)
        ->add('description', TextTypeForm::class)
        ->add('save', SubmitTypeForm::class, array('label' => 'Create Task'))
        ->getForm();



    try {
        $form->handleRequest($request);
    } catch (\Exception $e) {
        echo "failed : ".$e->getMessage();
    }

    if ($form->isSubmitted()) {
        $data = $form->getData();
        $em->persist($task);
        $em->flush();

        return $this->redirectToRoute('task_success');
    }

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

任務類別:

<?php

namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
 * @ORM\Entity
 * @ORM\Table(name="task")
 */
class Task
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue
 */
private $id;

/**
 * @ORM\Column(type="string")
 */
private $title;

/**
 * @ORM\Column(type="string")
 */
private $description;




/**
  * @ORM\Embedded(class = "Status")
  */
private $status;


public function addTask(string $title, string $desc, bool $urgent, bool $important){
    $em = $this->getDoctrine()->getManager();

    $product = new Task();
    $product->setTitle($title);
    $status = new Status($urgent,$important);
    $product->setStatus($status);
    $product->setDescription($desc);

    $em->persist($product);

    $em->flush();
} // "addtask"           [POST] /create
/**
 * Get id
 *
 * @return int
 */
public function getId()
{
    return $this->id;
}

/**
 * Set title
 *
 * @param string $title
 *
 * @return Task
 */
public function setTitle($title)
{
    $this->title = $title;

    return $this;
}

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

/**
 * Set description
 *
 * @param string $description
 *
 * @return Task
 */
public function setDescription($description)
{
    $this->description = $description;

    return $this;
}

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

/**
 * Set status
 *
 * @param integer $status
 *
 * @return Task
 */
public function setStatus($status)
{
    $this->status = $status;

    return $this;
}

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

}

在我看來,您定義了錯誤的類型http://symfony.com/doc/current/reference/forms/types.html
TextTypeForm和SubmitTypeForm是未知類型。

$form = $this->createFormBuilder($task)
    ->setMethod("POST")
    ->add('title', TextTypeForm::class)
    ->add('description', TextTypeForm::class)
    ->add('save', SubmitTypeForm::class, array('label' => 'Create Task'))
    ->getForm();

應該

$form = $this->createFormBuilder($task)
    ->setMethod("POST")
    ->add('title', TextType::class)
    ->add('description', TextType::class)
    ->add('save', SubmitType::class, array('label' => 'Create Task'))
    ->getForm();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM