2012-02-02 9 views
0

私はSymfony 1.4アプリケーションで作業しています。私はdoctrine I18Nを使用しています。柔軟性のために、データベースアーキテクチャを移行しているので、2つのMySQLデータベースがあります:1マスターと1スレーブ。だからこそ、私はsfDoctrineMasterSlavePluginを使うことにしました。これはこの新しい設定には最適です。残念ながら、私は現在I18Nでいくつかのエラーが発生しています。ここに私の設定です:sfDoctrineMasterSlavePluginとI18Nエラー "不明なリレーションエイリアス変換"

databases.ymlの

dev: 
    master: 
    class: sfDoctrineDatabase 
    param: 
     dsn:  mysql:host=localhost;dbname=my_db; 
     username: **** 
     password: **** 

    slave: 
    class: sfDoctrineDatabase 
    param: 
     dsn:  mysql:host=localhost;dbname=my_db; 
     username: **** 
     password: **** 

schema.ymlの私のテンプレートで

Data: 
    actAs: 
    I18n: 
     fields: [name] 
    columns: 
    name: { type: string(255) } 

<?php echo $data->getName(); ?> 

私はこのエラーを取得

Unknown relation alias Translation 

私はこの関係が正しく動作しない理由の任意の理由を見つけることができない!...私は何人かの人々が同じエラーを取得したが、いずれかの解決策を見つけることができませんでした...

誰もがアイデアを持っていますか?

+0

すべてのI18nリレーションシップでこのエラーが発生しますか?それともこれだけで? – dlondero

+0

遅い応答に申し訳ありませんが、私はあなたのコメントの通知を受け取っていない...実際に私はすべての私のI18n関係でこのエラーがあります。そして、私はまだそれが正常に動作するように任意の解決策を見つけることができませんでした!... – TiuSh

答えて

1

私は最終的にlibに/ベンダー/ symfonyの/ libに/ plugins /にするsfDoctrinePlugin/libに/ベンダー/ドクトリン/ドクトリン/録音/ジェネレータで

(説明のためのポストを参照してください)http://www.doctrine-project.org/jira/browse/DC-363からジョーSiponenに対する解決策のおかげを見つけました.php:

abstract class Doctrine_Record_Generator extends Doctrine_Record_Abstract 
{ 
    protected static $lastConnectionHash = null; 

    /* ... */ 

    public function initialize(Doctrine_Table $table) 
    { 
     if ($this->_initialized) { 
      return false; 
     } 

     $this->_initialized = true; 

     $this->initOptions(); 

     $table->addGenerator($this, get_class($this)); 

     $this->_options['table'] = $table; 

     $ownerClassName = $this->_options['table']->getComponentName(); 
     $className = $this->_options['className']; 
     $this->_options['className'] = str_replace('%CLASS%', $ownerClassName, $className); 

     if (isset($this->_options['tableName'])) { 
      $ownerTableName = $this->_options['table']->getTableName(); 
      $tableName = $this->_options['tableName']; 
      $this->_options['tableName'] = str_replace('%TABLE%', $ownerTableName, $tableName); 
     } 

     // check that class doesn't exist (otherwise we cannot create it) 
     if ($this->_options['generateFiles'] === false && class_exists($this->_options['className'])) { 
      $this->_table = Doctrine_Core::getTable($this->_options['className']); 
      return false; 
     } 

     $currentConnectionHash = spl_object_hash($table->getConnection()->getDbh()); 

     if ($currentConnectionHash != self::$lastConnectionHash) 
     { 
      self::$lastConnectionHash = $currentConnectionHash; 

      $this->buildTable(); 

      $fk = $this->buildForeignKeys($this->_options['table']); 

      $this->_table->setColumns($fk); 

      $this->buildRelation(); 

      $this->setTableDefinition(); 
      $this->setUp(); 

      $this->generateClassFromTable($this->_table); 

      $this->buildChildDefinitions(); 

      $this->_table->initIdentifier(); 
     } 
    } 


    /* ... */ 

} 
関連する問題