繁体   English   中英

将参数传递给Symfony @ParamConverter

[英]Passing parameters to Symfony @ParamConverter

我在我的控制器中使用symfony @ParamConverter通过它的slug获取一个实体,但是我没有使用“findBySlug()”方法而是使用更具体的“findWithSomeFeaturesBySlug($ slug)”,我遇到了问题因为在findWithSomeFeaturesBySlug($ slug)方法中,我收到$ slug参数作为一个带有'slug'键的关联数组,而不是slug的值。

我的控制器代码如下所示:

/**
* @Route("/some-route/{slug}")
* @ParamConverter("object", class="AcmeBundle:Object", options={"repository_method" = "findWithSomeFeaturesBySlug"})
*/
public function acmeDemoAction(Object $object)
{
    // Controller code here
}

我希望有人可以帮助我。

谢谢。

更新:

对不起,我认为我没有正确解释我的问题。 问题是我在“findWithSomeFeaturesBySlug($ slug)”函数中得到了一个关联数组,我需要直接得到$ slug值。

// ObjectRepository
public function findWithSomeFeatures($slug) 
{
    // here I get an associative array in the slug parameter:
    // $slug = array('slug' => 'some_value')
    // And I need $slug = 'some_value'
}

我有同样的问题,通过在ParamConverter中添加id选项来修复

/**
* @Route("/some-route/{slug}")
* @ParamConverter("object", class="AcmeBundle:Object", options={"id" = "slug", "repository_method" = "findWithSomeFeaturesBySlug"})
*/
public function acmeDemoAction(Object $object)
{
    // Controller code here
}

在存储库中创建一个新方法以代理调用

findSlugXXXX($slug) {
    $this->findWithSomeFeaturesBySlug(array('slug' => $slug));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM