为什么 Symfony 寻找 "addWooklyExercise()" 而不是 "addWeeklyExercise()"
Why does Symfony look for "addWooklyExercise()" instead of "addWeeklyExercise()"
根据客户要求,我将实体文本字段 (weekly_exercise) 更改为 1:n 关系。到目前为止一切正常,但是当试图保存表单时,Symfony 会查找 "changed" 方法名称。
这是我收到的错误消息
Neither the property "weekly_exercise" nor one of the methods "addWooklyExercise()"/"removeWooklyExercise()", "setWeeklyExercise()", "weeklyExercise()", "__set()" or "__call()" exist and have public access in class "XXX\CourseBundle\Entity\Course".
当然 "addWooklyExercise()"/"removeWooklyExercise()"
不存在。我可以将它们放入并代理到真正的方法,但这只会是一个丑陋的 hack。
我查看了我的所有文件,但找不到任何可能导致此问题的内容。
我正在使用 Symfony 2.5.7,因为我的客户不允许我更新!!
问题涉及的文件https://gist.github.com/mhauptma73
编辑:
出于某种原因,方法
public function addWooklyExercise(\BDA\CourseBundle\Entity\CourseWeeklyExercise $weeklyExercise)
{
$this->__initializer__ && $this->__initializer__->__invoke($this, 'addWooklyExercise', array($weeklyExercise));
return parent::addWooklyExercise($weeklyExercise);
}
正在缓存代理中添加。不过也有正确拼写的方法,在拼错之前。
看起来你在某处有错字,可能是你的实体,你的表单类型或在模板中输出表单时。尝试在整个 src/ 目录中搜索 wookly
,您可能会找到它。
遵循命名约定,例如当您为 oneToMany 添加 属性 时它是复数,对于添加或删除方法将其更改为单数。
protected $tags;
public function addTag(Tag $tag)
{
//...
}
public function removeTag(Tag $tag)
{
// ...
}
查看更多详细信息阅读此文档:
http://symfony.com/doc/2.7/form/form_collections.html#form-collections-new-prototype
根据客户要求,我将实体文本字段 (weekly_exercise) 更改为 1:n 关系。到目前为止一切正常,但是当试图保存表单时,Symfony 会查找 "changed" 方法名称。
这是我收到的错误消息
Neither the property "weekly_exercise" nor one of the methods "addWooklyExercise()"/"removeWooklyExercise()", "setWeeklyExercise()", "weeklyExercise()", "__set()" or "__call()" exist and have public access in class "XXX\CourseBundle\Entity\Course".
当然 "addWooklyExercise()"/"removeWooklyExercise()"
不存在。我可以将它们放入并代理到真正的方法,但这只会是一个丑陋的 hack。
我查看了我的所有文件,但找不到任何可能导致此问题的内容。
我正在使用 Symfony 2.5.7,因为我的客户不允许我更新!!
问题涉及的文件https://gist.github.com/mhauptma73
编辑:
出于某种原因,方法
public function addWooklyExercise(\BDA\CourseBundle\Entity\CourseWeeklyExercise $weeklyExercise)
{
$this->__initializer__ && $this->__initializer__->__invoke($this, 'addWooklyExercise', array($weeklyExercise));
return parent::addWooklyExercise($weeklyExercise);
}
正在缓存代理中添加。不过也有正确拼写的方法,在拼错之前。
看起来你在某处有错字,可能是你的实体,你的表单类型或在模板中输出表单时。尝试在整个 src/ 目录中搜索 wookly
,您可能会找到它。
遵循命名约定,例如当您为 oneToMany 添加 属性 时它是复数,对于添加或删除方法将其更改为单数。
protected $tags;
public function addTag(Tag $tag)
{
//...
}
public function removeTag(Tag $tag)
{
// ...
}
查看更多详细信息阅读此文档: http://symfony.com/doc/2.7/form/form_collections.html#form-collections-new-prototype