我想创造我的控制器,如果它不是在传递一个处理category
空值的行动的第一项Symfony3:默认的参数得到,即使默认为null的
我已经试过注释2条路线(。一个没有/{category}
),但在任何情况下,当我没有在URL中提供一个类别时,Symfony会检索它可以找到的第一个类别。
@Route("/accounts/{id}/categories/{category}", defaults={"category" = null})
的动作定义是这样的:
public function categoryAction(Request $request, Account $account, Category $category)
我也曾在行动试图$category = null
,但这并不有所作为。
如果该类别未在url中定义,我如何使此动作的值为$category
,值为null
?
更新:
需要明确的是,这里是我的Xdebug的结果的意见充分的注释和功能定义:
/**
* @Route("/accounts/{id}/categories")
* @Route("/accounts/{id}/categories/{category}, defaults={"category" = null}")
*/
public function categoryAction(Request $request, Account $account, Category $category = null)
{
// When I set a breakpoint here, $category is populated with
// the first category result in the database.
// This is when visiting: http://localhost:8000/accounts/1/categories
也许我的问题是在别的地方。这就是我想要对2条路线进行注释的意思,其中一条没有/分类。即使这是注释的唯一路由,并且我使用php来默认'$ category = null','$ category'仍然会填充一个值。 – Coder1