【问题标题】:Get and transmit form input value from controller to another从控制器获取表单输入值并将其传输到另一个
【发布时间】:2014-08-10 14:50:39
【问题描述】:

我的 Symfony 表单有些问题。 在我的第一个控制器中,我渲染了一个这样的表单:

    $annonce = new Annonce();
    $formBuilder = $this->createFormBuilder($annonce);
    $formBuilder
        ->add('title', 'text')
        ->add('valider', 'submit');
    $form = $formBuilder->getForm();

    $request = $this->get('request');

    if ($request->getMethod() == 'POST') {
        $form->bind($request);

        $response = $this->forward('ProjectMainBundle:Commande:new', array(
            'annonce' => $form["title"]
        ));

        return $response;
    }

然后我像这样在视图中打印表单:

<form method="post" {{ form_enctype(form) }}>
    {{ form_row(form.title, {'attr': {'value': entity.mytext }}) }}
    <input type="submit" class="btn btn-primary" />
</form>

这是给:

<form method="post">
    <div>
        <label class="required" for="form_title">Title</label>
        <input id="form_title" type="text" value="11" required="required" name="form[title]">
    </div>
    <input class="btn btn-primary" type="submit">
</form>

所以当我提交它时,我收到了警告

"An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Object of class Symfony\Component\Form\Form could not be converted to string"

我只是想重定向到控制器“newAction”(这是工作),但我的表单输入的值!

<input id="form_title" type="text" value="11" required="required" name="form[title]">

似乎我返回了表单对象

$response = $this->forward('ProjectMainBundle:Commande:new', array(
    'annonce' => $form["title"]
));

但是如何只返回表单输入的值呢?

非常感谢您的帮助

【问题讨论】:

    标签: php symfony model-view-controller controller


    【解决方案1】:

    尝试调用 $annonce->getTitle() 而不是使用 $form["title"]。 调用 "$form->bind($request)" 后,您的 $annonce 对象应该在表单中输入标题。

    【讨论】:

      猜你喜欢
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多