2

この例の Symfony2 ドキュメントの基本的なフォーム、テンプレート、およびコントローラー アクションがあります。

コントローラーアクションでフォームのパラメーターを取得しようとするときはいつでも、これを使用する必要があります:

$parameters = $request->request->all();
$name = $parameters["form"]["name"];

ただし、ドキュメントではこれを使用します。

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

しかし、これは私にとっては間違っています.

object(Symfony\Component\HttpFoundation\ParameterBag)#8 (1) {
  ["parameters":protected]=>
  array(1) {
    ["form"]=>
    array(1) {
      ["name"]=>
      string(4) "test"
    }
  }
}
4

1 に答える 1

10
$formPost = $request->request->get('form');
$name = $formPost['name'];

またはPHP 5.4以降

$name = $request->request->get('form')['name'];

私の意見では、送信されたデータにアクセスする最良の方法は、最初にリクエストをフォームにバインドし、次に Form オブジェクトから値にアクセスすることです。

if ('POST' === $request->getMethod())
{
    $form->bindRequest($request); //Symfony 2.0.x
    //$form->bind($request); //Symfony 2.1.x

    $name = $form->get('name')->getData();
}
于 2012-11-14T13:04:48.507 に答える