gpt4 book ai didi

symfony2 表单未显示

转载 作者:行者123 更新时间:2023-12-04 23:57:42 27 4
gpt4 key购买 nike

我正在学习 symfony2,我在 Controller 中创建了一种形式,如下所示。
Controller 文件为 DefaultController.php

namespace Banner\TestBundle\Controller;

use Banner\TestBundle\Entity\Contact;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Banner\TestBundle\Entity\Task;
use Symfony\Components\HttpFoundation\Request;

class DefaultController extends Controller
{
public function newAction(Request $request)
{

echo "The controller is called ";
$task = new Task();
$task->setTask("Write a blog Post ");
$task->setDueDate(new DateTime('tomorrow'));

$form = $this->createFormBuilder($task)
->add('task','text ')
->add('duedate','date')
->getForm();
return $this->render('BannerTestBundle:default:zoo.html.twig',array('form'=>$form->createView()));

}
}

我的路由文件如下。
路由.yml
task_new:
pattern: /task/{request}
defaults: { _controller: BannerTestBundle:Default:new}

和 zoo.html.twig 文件如下。
{% extends '::page.html.twig' %}
{% block title %}The Zoo{% endblock %}

{% block content %}

<form action="{{ path('task_new') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit">
</form>

{% endblock %}

当我在我的 url 中传递“task/GET”时,它会显示“请求不存在”。错误 500'。

我基本上想做的是当我传递 url 时,zoo.html.twig 将被调用。我想在zoo.html.twig 中显示表单。

最佳答案

您不需要通过$request到你的行动,你不需要把它放在你的路线上。请求对象在全局上下文中可用。所以

task_new:
pattern: /task-new
defaults: { _controller: BannerTestBundle:Default:new}

你可以这样离开
public function newAction(Request $request)

或有
public function newAction()

并像这样访问请求对象
$request  = $this->getRequest();

关于symfony2 表单未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com