根据客户要求,我将实体文本字段(weekly_exercise)更改为1:n关系。到目前为止,一切正常,但在尝试保存表单时,Symfony会寻找一个“已更改”的方法名称。
这是我收到的错误消息
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()"
不存在。我可以将它们放入并代理真正的方法,但这只会是一个丑陋的黑客。
我一直在查看我的所有文件,找不到可能导致此问题的任何内容。
我在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);
}
正在缓存代理中添加。但是在拼写错误的方法之前,还有正确拼写的方法。
答案 0 :(得分:0)
看起来你在某个地方有一个拼写错误,可能你的实体,你的表格类型或在模板中输出表格时。尝试搜索wookly
的整个src /目录,你可能会找到它。
答案 1 :(得分:0)
遵循命名约定,例如当您为oneToMany添加属性时它是复数,而对于添加或删除方法,将其更改为单数。
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
...
# RESET INDEX AND RENAME COLUMN AFTER SUBSETTING
male = df2[df2['Gender'] == "M"].reset_index(drop=True).rename(columns={'Age':'MaleAge'})
female = df2[df2['Gender'] == "F"].reset_index(drop=True).rename(columns={'Age':'FemaleAge'})
# OUTER JOIN TO ACHIEVE SAME LENGTH
gendermat = np.array(male[['MaleAge']].join(female[['FemaleAge']], how='outer'))
plt.hist(gendermat, bins=50, label=['male', 'female'])
plt.legend(loc='upper right')
plt.show()
plt.clf()
plt.close()
查看更多详情阅读本文档: http://symfony.com/doc/2.7/form/form_collections.html#form-collections-new-prototype