目前正在使用通过 PEAR 获得的最新版本的 symfony 开发应用程序。这是我的确切架构配置
propel:
user:
id:
name: { type: varchar(255), required: true }
level: { type: integer, required: true, default: 1 }
created_at:
post:
id:
title: { type: varchar(255), required: true }
post: { type: longvarchar, required: true }
user_id:
created_at:
updated_at:
comment:
id:
relation: integer
comment: { type: varchar(300), required: true }
nick: { type: varchar(100), required: true }
created_at:
updated_at:
清醒的你可能已经注意到 post 中的 user_id 是用户的外键。根据明确的指南;[quote title=Quote:](以_id结尾的列被认为是外键,根据列名的第一部分自动确定相关表)。[/quote]
每当我尝试构建过滤器或表单(构建过滤器/构建表单/构建全部)时,我都会收到以下错误消息。
>> propel generating form classes
-----> Cannot fetch TableMap for undefined table: user. Make sure you have the static MapBuilder registration code after your peer stub class definition. <------
[?php
/**
* Post form base class.
*
* @package ##PROJECT_NAME##
* @subpackage form
* @author ##AUTHOR_NAME##
* @version SVN: $Id: sfPropelFormGeneratedTemplate.php 16976 2009-04-04 12:47:44Z fabien $
*/
class BasePostForm extends BaseFormPropel
{
public function setup()
{
$this->setWidgets(array(
'id' => new sfWidgetFormInputHidden(),
'title' => new sfWidgetFormInput(),
'post' => new sfWidgetFormTextarea(),
'user_id' => new sfWidgetFormPropelChoice(
我也尝试在我的架构中定义 foreignTable 和 foreignReference,但没有运气。这是一个新的 symfony 项目,只是为了调试这个错误而创建的。我尝试为我的表使用单数和复数名称。我做错了什么,或者这是一个严重的错误?感谢任何输入,这让我发疯!
我在 symfony 的官方社区有一个论坛帖子,在这里:http: //forum.symfony-project.org/index.php/m/77979/ - 有一些建议(比如我如何忘记使用波浪号以及“ user" 是一个预定义的类,但问题仍然解决[编辑] 到现在。
一个免费的网络拥抱、主要道具和免费航天飞机,送给想出解决方案的强大灵魂!(免责声明:实际上没有免费的航天飞机)