我使用Sympelon 1.4和Propel。我刪除了一個表(名稱:company_show_field),也從數據庫和schema.yml中刪除。然後我添加了一個名爲agency_company的新表(它也存在於DB中)。所以,我現在有這樣的:Symfony 1.4,Propel,build-forms使用老yaml?
company: _attributes: { phpName: EdimaCompany } id: { type: INTEGER, size: '11', autoIncrement: true, required: true } name: { type: VARCHAR, size: '100', required: true } ... agency_company: _attributes: { phpName: EdimaAgencyCompany } _propel_behaviors: symfony: form: false filter: false agency_id: { type: INTEGER, size: '11', required: true, primaryKey: true, foreignTable: company, foreignReference: id, onDelete: CASCADE } company_id: { type: INTEGER, size: '11', required: true, primaryKey: true, foreignTable: company, foreignReference: id, onDelete: CASCADE }
然後我做:
symfony cc symfony propel:build-model symfony propel:build-forms
但BaseEdimaCompanyForm類拋出一個異常: 「調用未定義的方法BaseEdimaCompany :: getEdimaCompanyShowFields」。我從這個文件中刪除了一些行(爲了測試這個代碼是新建一個文件),並且再次重新生成模型/表單,但是symfony再次生成了一個錯誤的代碼。
我確定這個表(company_show_fields)在模式和數據庫中不存在。而且我沒有看到這個表單類(agency_company)中的新表。
有人可以幫助我嗎?爲什麼會發生? symfony在哪裏得到表名,什麼不存在?
PS:對不起,我的英文,這不是我的母語。
我不明白髮生了什麼,但我刪除了模型/地圖/ EdimaCompanyShowFieldsTableMap.php,現在可以使用。 對不起,您的時間! – gopher