我修改了我的db和一些fk关系。重建模式和重建类后,我在尝试使用类
时收到错误消息致命错误:无法在第717行的C:\ wamp \ www \ cbm_hr \ trunk \ cbm \ plugins \ cbmHrLibPlugin \ lib \ model \ om \ BaseHrlibQualificationLevelQuery.php中重新声明BaseHrlibQualificationLevelQuery :: filterByHrlibQualification()
我检查了架构,但同一个表中没有多列。
还有哪些其他因素会导致函数的多次声明?
答案 0 :(得分:5)
我刚遇到类似的问题。虽然你的问题没有提到你是否有多个外键到同一个外表,但我怀疑这是问题所在。
我有:
<foreign-key foreignTable="dish" phpName="Dish" refPhpName="Menu">
<reference local="soup_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="dish" phpName="Dish" refPhpName="Menu">
<reference local="main_id" foreign="id"/>
</foreign-key>
我收到此错误消息:
PHP致命错误:无法重新声明BaseMenuQuery :: filterByDish()
然后我改变了phpName和refPhpName属性(后者是必需的,因为Propel会在外表类中生成filterBySomething()函数,因此在我的情况下有多个filterByMenu()函数名称):
<foreign-key foreignTable="dish" phpName="soupDish" refPhpName="sMenu">
<reference local="soup_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="dish" phpName="mainDish" refPhpName="mMenu">
<reference local="main_id" foreign="id"/>
</foreign-key>
所以我猜你有多个外键对HrlibQualification表有多个引用。
我希望有所帮助。
答案 1 :(得分:0)
抱歉,我迟到了,但问题的解决方案在于你的表的结构,你有两个外键指向同一个引用,但其中一个没有指向你的表,那个&#39; s为什么你只看到一个。
<强>溶液强>
执行脚本
SHOW CREATE TABLE table_name
识别重复的外键
然后删除一个通常是用命令
看不到的那个ALTER TABLE table_name DROP FOREIGN KEY `foreign_key_id`
然后使用推进反向重新生成模式
你应该好好去。