SYmfony路由从url获取参数

SYmfony路由从url获取参数,symfony,routing,Symfony,Routing,我想从symfony 2中的链接获取一个参数 当我从url中删除链接时,我应该转发到索引页面,并获取令牌参数的值。 我的链接如下 http://www.myapp.com/?token=khdfhgkdfjghjdfgd354dfgdfg454dfg 所以在我的控制器中,我应该得到令牌的值 如何在symfony 2中实现这一点,在路由symfony 2中。操作当然是get,但我如何在路由文件中执行此操作 谢谢这是一项简单的任务,只需在控制器方法中键入hint请求对象,如下所示 use Sens

我想从symfony 2中的链接获取一个参数

当我从url中删除链接时,我应该转发到索引页面,并获取令牌参数的值。 我的链接如下

http://www.myapp.com/?token=khdfhgkdfjghjdfgd354dfgdfg454dfg
所以在我的控制器中,我应该得到令牌的值

如何在symfony 2中实现这一点,在路由symfony 2中。操作当然是get,但我如何在路由文件中执行此操作


谢谢这是一项简单的任务,只需在控制器方法中键入hint请求对象,如下所示

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class MyController extends Controller
{
    /**
     * @Route("/", name="index")
     */
    public function indexAction(Request $request)
    {
        $token = $request->query->get('token');

        // ... 
    }

    /**
     * @Route("/{token}", name="index_with_token")
     */
    public function indexWithTokenAction(Request $request, $token)
    {    
        // ... 
    }
}
您可以这样做:

use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;


/**
* @Route("/your-url/{token}",
* defaults={"token"="...."}, name="url_token")
*/
public function yourAction(Request $request) {

    // $_GET parameters
    $request->query->get('name'); // in your case name is token

    // $_POST parameters
    $request->request->get('name');

}

或者您可以在方法参数中添加$token,symfony将自动为参数赋值。@Emna但是,我强烈建议您做出一些努力,并查看官方文档!参数
$Request
之前的
Request
是什么意思?@PomCanys它是typehint(查看)。Symfony使用它来知道哪个动作参数是请求参数。@EmanuelOster感谢您的解释。那么,
Request
是不是只有Symphony使用的东西呢?因为在PHP文档中,我找不到作为有效类型的
Request