为什么Symfony寻找“addWooklyExercise()”而不是“addWeeklyExercise()”

时间:2017-04-16 08:11:57

标签: php symfony symfony-forms symfony-2.5

根据客户要求,我将实体文本字段(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);
}

正在缓存代理中添加。但是在拼写错误的方法之前,还有正确拼写的方法。

2 个答案:

答案 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