Symfony2教程已弃用功能

时间:2015-01-20 12:53:57

标签: php symfony

我正在学习Symfony2 Framework,开始我发现本教程:Tutorial。在我遇到这个问题之前,一切都进展顺利:

Tutorial Part2中的

。在控制器部分中创建表单时,我发现不推荐使用getRequest()函数,并且在类中找不到bindRequest()

这两个让我回到教程和学习进度。我还有其他方法可以在不使用这些函数的情况下构造这个控制器,或者还有其他功能可以完全相同。

1 个答案:

答案 0 :(得分:4)

请参阅Symfony文档的part。它表明您应该使用handleRequest,如下所示:

// Top of page:
use Symfony\Component\HttpFoundation\Request;
...

// controller action
public function newAction(Request $request)
{
    $form = $this->createFormBuilder()
        // ...
        ->getForm();

    $form->handleRequest($request);

    if ($form->isValid()) {
        // perform some action...

        return $this->redirect($this->generateUrl('task_success'));
    }

    return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
        'form' => $form->createView(),
    ));
}

您可能还会发现此链接很有用:Handling Form Submissions

作为控制器参数的请求

首先以这种方式获取请求对象可能有点令人困惑,引用文档:

  

如果您需要读取查询参数,获取请求标头或   可以访问上传的文件?所有这些信息都存储在   Symfony的Request对象。要在控制器中获取它,只需将其添加为   一个参数和类型提示它与Request类:

use Symfony\Component\HttpFoundation\Request;

public function indexAction($firstName, $lastName, Request $request)
{
    $page = $request->query->get('page', 1);

    // ...
}

此信息可在Controller Documentation上找到。