Symfony如何从操作获取类注释路由参数

Symfony如何从操作获取类注释路由参数,symfony,routing,annotations,Symfony,Routing,Annotations,这里有一个问题: /** * Deal controller. * * @Route("/portfolio/{portfolio_id}/deal") */ class DealController extends Controller { // … some code here… /** * Creates a new Deal entity. * * @Route("/", name="mb_deal_create") *

这里有一个问题:

/**
 * Deal controller.
 *
 * @Route("/portfolio/{portfolio_id}/deal")
 */
class DealController extends Controller
{
    // … some code here…

    /**
     * Creates a new Deal entity.
     *
     * @Route("/", name="mb_deal_create")
     * @Method("POST")
     * @Template("MBPortfolioBundle:Deal:new.html.twig")
     */
    public function createAction(Request $request)
    {
    }
这就是我的问题:如何从这个createAction中获取类注释中定义的$portfolio_id路由参数

如果我尝试将此参数添加到参数列表中-它为空,则:

public function createAction(Request $request, $portfolio_id) // no way
public function createAction(Request $request)
{
    $portfolio_id = $request->query->get('portfolio_id'); // no way
如果我试图从查询参数bag中获取它-它为null,则:

public function createAction(Request $request, $portfolio_id) // no way
public function createAction(Request $request)
{
    $portfolio_id = $request->query->get('portfolio_id'); // no way
那么我需要做什么呢

谢谢你的帮助

谢谢,祝你今天愉快

编辑

portfolio\u id
移动到操作注释

/**
 * Deal controller.
 *
 */
class DealController extends Controller
{

// … some code here…

/**
 * Creates a new Deal entity.
 *
 * @Route("/portfolio/{portfolio}/deal", name="mb_deal_create")
 * @Method("POST")
 * @Template("MBPortfolioBundle:Deal:new.html.twig")
 */
public function createAction(Request $request, Portfolio $portfolio)
{
}
编辑

portfolio\u id
移动到操作注释

/**
 * Deal controller.
 *
 */
class DealController extends Controller
{

// … some code here…

/**
 * Creates a new Deal entity.
 *
 * @Route("/portfolio/{portfolio}/deal", name="mb_deal_create")
 * @Method("POST")
 * @Template("MBPortfolioBundle:Deal:new.html.twig")
 */
public function createAction(Request $request, Portfolio $portfolio)
{
}
编辑

portfolio\u id
移动到操作注释

/**
 * Deal controller.
 *
 */
class DealController extends Controller
{

// … some code here…

/**
 * Creates a new Deal entity.
 *
 * @Route("/portfolio/{portfolio}/deal", name="mb_deal_create")
 * @Method("POST")
 * @Template("MBPortfolioBundle:Deal:new.html.twig")
 */
public function createAction(Request $request, Portfolio $portfolio)
{
}
编辑

portfolio\u id
移动到操作注释

/**
 * Deal controller.
 *
 */
class DealController extends Controller
{

// … some code here…

/**
 * Creates a new Deal entity.
 *
 * @Route("/portfolio/{portfolio}/deal", name="mb_deal_create")
 * @Method("POST")
 * @Template("MBPortfolioBundle:Deal:new.html.twig")
 */
public function createAction(Request $request, Portfolio $portfolio)
{
}

我的解决方案就在这里:

$portfolio_id = $request->attributes->get('_route_params')['portfolio_id'];

我的解决方案就在这里:

$portfolio_id = $request->attributes->get('_route_params')['portfolio_id'];

我的解决方案就在这里:

$portfolio_id = $request->attributes->get('_route_params')['portfolio_id'];

我的解决方案就在这里:

$portfolio_id = $request->attributes->get('_route_params')['portfolio_id'];

我知道你已经找到了解决办法,但在这里提出另一种解决办法也无妨:

$context = new RequestContext();
$context->fromRequest($request);
$portfolio_id = $context->getParameter('portfolio_id');

我知道你已经找到了解决办法,但在这里提出另一种解决办法也无妨:

$context = new RequestContext();
$context->fromRequest($request);
$portfolio_id = $context->getParameter('portfolio_id');

我知道你已经找到了解决办法,但在这里提出另一种解决办法也无妨:

$context = new RequestContext();
$context->fromRequest($request);
$portfolio_id = $context->getParameter('portfolio_id');

我知道你已经找到了解决办法,但在这里提出另一种解决办法也无妨:

$context = new RequestContext();
$context->fromRequest($request);
$portfolio_id = $context->getParameter('portfolio_id');


感谢您花费的时间,我自己找到了一个解决方案,投票支持您的答案,虽然尝试将参数移出类注释,但它还有5个操作需要此参数:(@SergeVelikanov已理解。感谢您花费的时间,我自己找到了一个解决方案,投票支持您的答案,虽然尝试将参数移出类注释,但它还有5个操作需要此参数:(@SergeVelikanov已理解。感谢您花费的时间,我自己找到了一个解决方案,投票支持您的答案,虽然尝试将参数移出类注释,但它还有5个操作需要此参数:(@SergeVelikanov Understand.FatalErrorException:Error:调用成员函数getParameter()在非对象上。它说fromRequest是一个空函数:(谢谢,现在是这样,但它开始使用函数参数中的变量………古怪的错误错误:调用非对象上的成员函数getParameter()。它说fromRequest是一个空函数:(谢谢,现在就是这样,但它开始只使用函数参数中的变量………古怪的错误错误错误异常:调用非对象上的成员函数getParameter()。它说fromRequest是一个无效函数:(谢谢,现在就是这样,但它开始只使用函数参数中的变量………古怪的错误错误错误异常:调用非对象上的成员函数getParameter()。它说fromRequest是一个无效函数:(谢谢,现在就是这样,但它开始只使用函数参数中的变量………奇怪的
$request->get('portfolio\u id')
也应该为您获取此信息。
$request->get('portfolio\u id')
也应该为您获取此信息。
$request->get('portfolio\u id')
也应该为您获取此信息。
$request->get('portfolio_id')
也应该为您准备好这个。