私がやりたいことは非常に簡単です:
1) 送信ボタンを備えた単一の入力ボックス 2) どんな入力でも取得し、入力に基づいてユーザーをリダイレクトしたいので、私のサイトが www.example.com で、ユーザーが「テスト」を送信した場合、リダイレクトしたいwww.example.com/test
ただし、symfony2 のドキュメントには例がありません。これでフォームを作成できました:
class VariantType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('urlId', 'text', array('label' => 'tiny.cc/'))
->add('Go', 'submit')
->getForm();
}
public function getName()
{
return 'index';
}
}
これは問題なく生成されますが、送信ハンドラーがないことに気付きました。ドキュメントのさまざまな部分で説明されているように、リクエストを受け取る 'newAction 関数が必要だと思います。
http://symfony.com/doc/current/book/forms.html
だから私はこれを試しました....
public function newAction(Request $request){
$form->handleRequest($request);
if($form->isValid()){
return $this->redirect($this->generateUrl('homepage_id'));
}
}
私の「homepage_id」ルートは、URL の末尾に「test」入力を含むルートを処理します。必要な URL に転送するだけで、ルーティング システムがすべてを処理してくれると思います。これは、私のニーズがいかに基本的なものであるかを示しています。しかし、上記はうまくいかないようです。私もvalidation.ymlを持っていますが、これが私の本当のハードルだとは思いません。誰かがこのようなことを説明するドキュメントを指摘できたとしても、私はそれを感謝します. (symfony2 のドキュメントは役に立ちません: フォームビルダーの作成が推奨されていると書かれていますが、フォームの送信方法については書かれていません。そのため、フォームの送信について説明しているセクションに移動し、関連する機能しますが、まだ機能しません.これらの部分をまとめた例は見つかりません.)