在实体属性上使用@ParamConverter作为setter

时间:2017-04-10 07:45:50

标签: symfony parameters entity

如何在Symfony的控制器中使用@ParamConverter非常清楚,但我已经(或希望)在Entity的setter方法中使用它(对于某些类属性)。这甚至意味着工作吗?

如果这可能,并且需要更多信息,情况就是这样:我有一个非简单的实体,具有各种自定义类型的属性。为了避免在每个表单上创建带有EntityType的表单字段下拉列表(由于此处提到的一些缓存问题:Symfony Form EntityType caching),我使用了ChoiceType,但使用ChoiceTypes时,选择并提交了这些属性的值。表单,不再转换为正确的实体类型(它们只是保留一个简单的int或下拉列表中列出的字符串)。

所以,我想以某种方式将它们转换为我自己,我猜想@ParamConverter应该是我最好的朋友,但不能让它发挥作用。 我在实体类中尝试这样的事情:

/**
 * @param \AppBundle\Entity\MyEntityClass $myParam
 * @ParamConverter("myParam", class="AppBundle:MyEntityClass", options={"id" = "customIdName"})
 * @return MyEntityClass
 */
public function setMyParam(MyEntityClass $myParam = null)
{
    $this->myParam = $myParam;

    return $this;
}

标准邮件Expected argument of type "AppBundle\Entity\MyClassName", "string" given

失败

感谢您的任何意见!

0 个答案:

没有答案