0

현재 PEAR을 통해 얻은 최신 버전의 symfony를 사용하여 응용 프로그램을 개발하고 있습니다. 이것은 내 정확한 스키마 구성입니다.symfony 프레임 워크와 데이터베이스 관계에 문제 - 정의되지 않은 테이블에 대해 TableMap을 가져올 수 없습니다.

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가 사용자의 외래 키임을 인식했을 것입니다. 명확한 가이드에 따르면; [인용문 = 따옴표 :] (_id로 끝나는 열은 외래 키로 간주되며 관련 테이블은 열 이름의 첫 번째 부분에 따라 자동으로 결정됩니다.) [/ quote]

빌드 할 때마다 필터 또는 FORMS (빌드 필터/빌드 양식/빌드 전체) 중 하나에서 다음과 같은 오류 메시지가 나타납니다.

>> 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 프로젝트이며,이 오류를 디버그하기 위해서만 만들어졌습니다. 내 테이블에 단수 및 복수 이름을 사용하려고했습니다. 나는 끔찍한 잘못을 저질러 왔을 까? 아니면 이것은 단단한 버그인가? 어떤 입력을 주셔서 감사합니다, 이것은 나를 미치게합니다!

내가 포럼, 여기 심포니의 공식 커뮤니티에서 이상 스레드가 : http://forum.symfony-project.org/index.php/m/77979/ - 나는 물결표를 사용하는 것을 잊었다 방법을 추천하고 그 몇 가지 제안 (이있었습니다 "사용자는"사전 정의 된 클래스이지만, 문제는 를 해결 남아 현재로서는 [편집]

한 무료 인터넷 포옹, 주요 소품과 해결책을 마련 거대한 영혼 무료 우주 왕복선.! (면책 조항 : 실제로 거기에 여유 우주 왕복선)

답변

2

업데이트 : 문제가 해결되었습니다. ... af 수많은 추적 및 디버깅 시간.

문제가 수동 같이 propel.ini에 부호화 테이블 접두사에 의해 야기되었다

; 커스텀 테이블 접두사
propel.tablePrefix = mindmonkey_

schema.yml과 propel.ini와의 통신이 없으므로 모든 것이 엉망입니다. 내 결론은 다음과 같습니다 접두사 잊어 버려, 각 프로젝트에 대한 전용 스키마를 사용 ... 난 그냥 접두사를 습관으로 사용, 항상 끝났어 -하지만 구체적으로 지시하지 않는 한 다시는 사용하지 마십시오!

관련 문제