Symfony2教程弃用了函数


Symfony2 tutorial deprecated function

我正在学习Symfony2框架,为了开始,我找到了这个教程:教程。一切都很顺利,直到我遇到这个问题:

在教程第 2 部分中。在控制器部分创建表单时,我发现 getRequest() 函数已弃用,并且在类中找不到bindRequest()

这两个阻碍了我的教程和学习进度。我有任何其他方法可以在不使用这些功能的情况下构造此控制器,或者是否有其他功能执行完全相同的操作。

参见 Symfony 文档的这一部分。它表明你应该使用 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(),
    ));
}

您可能还会发现此链接很有用:处理表单提交。

作为控制器参数的请求

这种方式获取请求对象起初可能会有点混乱,引用文档:

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

use Symfony'Component'HttpFoundation'Request;
public function indexAction($firstName, $lastName, Request $request)
{
    $page = $request->query->get('page', 1);
    // ...
}

此信息可在控制器文档中找到。