如何在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
感谢您的任何意见!