silex将表单数据传递给另一个页面?

时间:2012-07-19 21:37:24

标签: php symfony silex

我是silex和symfony的新手。这是我第一次涉足silex。我有一些代码可以在我的app.php文件中创建我的表单,从一些小的黑客攻击,复制和粘贴文档。

现在如何将此数据传递到另一个页面?

我想创建一个只转储post / get数组的页面,让我知道如何传递get / post变量。

以下是我的应用文件的一部分:

<?php
/** /src/app.php */
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

    /**
     * Register new application
     */
    $app = new Application();
    // skip to the form part ...
        $app->match('/', function (Request $request) use ($app) {
            // some default data for when the form is displayed the first time
            $data = array(
                'name' => 'Your name',
                'email' => 'Your email',
            );

            $form = $app['form.factory']->createBuilder('form', $data)
                ->add('name')
                ->add('email')
                ->add('gender', 'choice', array(
                    'choices' => array(1 => 'male', 2 => 'female'),
                    'expanded' => true,
                ))
                ->getForm();

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

                if ($form->isValid()) {
                    $data = $form->getData();

                    // do something with the data

                    // redirect somewhere
                    return $app->redirect('completed');
                }
            }

            // display the form
            return $app['twig']->render('index.html', array('form' => $form->createView()));
        });

我会创建一个这样的页面吗?

<?php  // app.php  
    $app->match('complete') use function ($app) {
          // sorry psuedocode
         foreach ($REQUEST as $key=> $var) {
         echo "$key: $var";
         }
        }

1 个答案:

答案 0 :(得分:3)

您可以尝试使用前锋。 http://silex.sensiolabs.org/doc/usage.html#fowards

// where params is the values from your POST
$subRequest = Request::create('/otherpage', 'GET', $params);

return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);