从控制器获取并传输表单输入值到另一个

时间:2014-08-10 14:50:39

标签: php symfony model-view-controller controller

我的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"]
));

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

非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

尝试调用$ annonce-&gt; getTitle()而不是使用$ form [“title”]。 在调用“$ form-&gt; bind($ request)”之后,你的$ annonce对象应该在表单中输入标题。