【发布时间】:2009-05-08 08:33:39
【问题描述】:
目前正在使用通过 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]
每当我尝试构建过滤器或表单 (build-filters/build-forms/build-all) 时,我都会收到以下错误消息。
>> 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/ - 有一些建议(比如我忘记使用波浪号并且“用户”是一个预定义的类,但问题仍然存在 已解决 [已编辑] 到现在为止。
一个免费的网络拥抱、主要道具和一个免费的航天飞机给提出解决方案的强大灵魂!(免责声明:实际上没有免费的航天飞机)
【问题讨论】:
标签: php database frameworks symfony1 foreign-key-relationship