Doctrine Mysql中的关系问题,条令得到以下错误:条令\u表\u异常:未知关系别名模型\u训练

Doctrine Mysql中的关系问题,条令得到以下错误:条令\u表\u异常:未知关系别名模型\u训练,doctrine,relational-database,Doctrine,Relational Database,我对教义中的关系有问题。在Mysql数据库上工作。使用关系下载数据时出现问题,并引发以下错误:条令\u表\u异常:未知关系别名模型\u培训 请帮助我厌倦它一些天我坐在上面,什么都没有出现,谷歌也没有找到任何东西 以下是检索数据的代码: $dataRows = Doctrine_Query::create() ->from('Model_Training a')->where('a.idTrainings = ?', $this->_get

我对教义中的关系有问题。在Mysql数据库上工作。使用关系下载数据时出现问题,并引发以下错误:条令\u表\u异常:未知关系别名模型\u培训

请帮助我厌倦它一些天我坐在上面,什么都没有出现,谷歌也没有找到任何东西

以下是检索数据的代码:

$dataRows = Doctrine_Query::create()
                    ->from('Model_Training a')->where('a.idTrainings = ?', $this->_getParam('id'))
                    ->leftJoin('a.Model_TrainingBonuse ac')
                    ->leftJoin('a.Model_Bonuse ad')
                    ->fetchArray();
TrainingBonuse:
  tableName: Trainings_has_Bonuses
  columns:
    Trainings_idTrainings:
      type: integer(4)
      notnull: true
      autoincrement: true
    Bonuses_idBonuses:
      type: integer(4)
      notnull: true
  relations:
    TrainingsIdTraining:
      class: Training
      local: Trainings_idTrainings
      foreign: idTrainings
      foreignAlias: Trainings_has_Bonuses
    BonusesIdBonuse:
      class: Bonuse
      local: Bonuses_idBonuses
      foreign: idBonuses
      foreignAlias: Trainings_has_Bonuses
  indexes:
    fk_Trainings_has_Bonuses_Bonuses1:
      fields: [Bonuses_idBonuses]
    fk_Trainings_has_Bonuses_Trainings1:
      fields: [Trainings_idTrainings]
  options:
    charset: utf8
    collate: utf8_polish_ci

Bonuse:
  tableName: Bonuses
  columns:
    idBonuses:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    name:
      type: string(45)
    title:
      type: string(255)
    description:
      type: clob(65535)
    file_url_full:
      type: string(255)
    file_type:
      type: integer(1)
    width_full:
      type: integer(4)
    height_full:
      type: integer(4)
    active:
      type: integer(1)
      default: 1
  options:
    charset: utf8
    collate: utf8_polish_ci

Training:
  tableName: Trainings
  columns:
    idTrainings:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    title:
      type: string(255)
    sub_title:
      type: string(255)
    up_body:
      type: clob(65535)
    training_body:
      type: clob(65535)
    question:
      type: clob(65535)
    opinion:
      type: clob(65535)
    bonuses:
      type: integer(1)
      notnull: true
      default: 0
    down_body:
      type: clob(65535)
    modyfication:
      type: integer(1)
      notnull: true
      default: 0
    active:
      type: integer(1)
      notnull: true
      default: 1
  options:
    charset: utf8
    collate: utf8_polish_ci
Schema.yml文件,包含条令模型的形成:

$dataRows = Doctrine_Query::create()
                    ->from('Model_Training a')->where('a.idTrainings = ?', $this->_getParam('id'))
                    ->leftJoin('a.Model_TrainingBonuse ac')
                    ->leftJoin('a.Model_Bonuse ad')
                    ->fetchArray();
TrainingBonuse:
  tableName: Trainings_has_Bonuses
  columns:
    Trainings_idTrainings:
      type: integer(4)
      notnull: true
      autoincrement: true
    Bonuses_idBonuses:
      type: integer(4)
      notnull: true
  relations:
    TrainingsIdTraining:
      class: Training
      local: Trainings_idTrainings
      foreign: idTrainings
      foreignAlias: Trainings_has_Bonuses
    BonusesIdBonuse:
      class: Bonuse
      local: Bonuses_idBonuses
      foreign: idBonuses
      foreignAlias: Trainings_has_Bonuses
  indexes:
    fk_Trainings_has_Bonuses_Bonuses1:
      fields: [Bonuses_idBonuses]
    fk_Trainings_has_Bonuses_Trainings1:
      fields: [Trainings_idTrainings]
  options:
    charset: utf8
    collate: utf8_polish_ci

Bonuse:
  tableName: Bonuses
  columns:
    idBonuses:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    name:
      type: string(45)
    title:
      type: string(255)
    description:
      type: clob(65535)
    file_url_full:
      type: string(255)
    file_type:
      type: integer(1)
    width_full:
      type: integer(4)
    height_full:
      type: integer(4)
    active:
      type: integer(1)
      default: 1
  options:
    charset: utf8
    collate: utf8_polish_ci

Training:
  tableName: Trainings
  columns:
    idTrainings:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    title:
      type: string(255)
    sub_title:
      type: string(255)
    up_body:
      type: clob(65535)
    training_body:
      type: clob(65535)
    question:
      type: clob(65535)
    opinion:
      type: clob(65535)
    bonuses:
      type: integer(1)
      notnull: true
      default: 0
    down_body:
      type: clob(65535)
    modyfication:
      type: integer(1)
      notnull: true
      default: 0
    active:
      type: integer(1)
      notnull: true
      default: 1
  options:
    charset: utf8
    collate: utf8_polish_ci
型号: 训练

培训奖金

abstract class Model_Base_TrainingBonuse extends Doctrine_Record
{
    public function setTableDefinition()
    {
        $this->setTableName('Trainings_has_Bonuses');
        $this->hasColumn('Trainings_idTrainings', 'integer', 4, array(
             'type' => 'integer',
             'notnull' => true,
             'autoincrement' => true,
             'length' => '4',
             ));
        $this->hasColumn('Bonuses_idBonuses', 'integer', 4, array(
             'type' => 'integer',
             'notnull' => true,
             'length' => '4',
             ));


        $this->index('fk_Trainings_has_Bonuses_Bonuses1', array(
             'fields' => 
             array(
              0 => 'Bonuses_idBonuses',
             ),
             ));
        $this->index('fk_Trainings_has_Bonuses_Trainings1', array(
             'fields' => 
             array(
              0 => 'Trainings_idTrainings',
             ),
             ));
        $this->option('collate', 'utf8_polish_ci');
        $this->option('charset', 'utf8');
        $this->option('type', 'InnoDB');
    }

    public function setUp()
    {
        parent::setUp();
        $this->hasOne('Model_Training as TrainingsIdTraining', array(
             'local' => 'Trainings_idTrainings',
             'foreign' => 'idTrainings'));

        $this->hasOne('Model_Bonuse as BonusesIdBonuse', array(
             'local' => 'Bonuses_idBonuses',
             'foreign' => 'idBonuses'));
    }
}
奖金

abstract class Model_Base_Bonuse extends Doctrine_Record
{
    public function setTableDefinition()
    {
        $this->setTableName('Bonuses');
        $this->hasColumn('idBonuses', 'integer', 4, array(
             'type' => 'integer',
             'primary' => true,
             'autoincrement' => true,
             'length' => '4',
             ));
        $this->hasColumn('name', 'string', 45, array(
             'type' => 'string',
             'length' => '45',
             ));
        $this->hasColumn('title', 'string', 255, array(
             'type' => 'string',
             'length' => '255',
             ));
        $this->hasColumn('description', 'clob', 65535, array(
             'type' => 'clob',
             'length' => '65535',
             ));
        $this->hasColumn('file_url_full', 'string', 255, array(
             'type' => 'string',
             'length' => '255',
             ));
        $this->hasColumn('file_type', 'integer', 1, array(
             'type' => 'integer',
             'length' => '1',
             ));
        $this->hasColumn('width_full', 'integer', 4, array(
             'type' => 'integer',
             'length' => '4',
             ));
        $this->hasColumn('height_full', 'integer', 4, array(
             'type' => 'integer',
             'length' => '4',
             ));
        $this->hasColumn('active', 'integer', 1, array(
             'type' => 'integer',
             'default' => 1,
             'length' => '1',
             ));

        $this->option('collate', 'utf8_polish_ci');
        $this->option('charset', 'utf8');
        $this->option('type', 'InnoDB');
    }

    public function setUp()
    {
        parent::setUp();
        $this->hasMany('Model_TrainingBonuse as Trainings_has_Bonuses', array(
             'local' => 'idBonuses',
             'foreign' => 'Bonuses_idBonuses'));
    }
}
在schema.yml文件中没有“Model\u Training”表定义…但是有“Training”。。。如果schema.yml中没有指定“alias class”或“foreign alias”元素,则使用表定义的名称。因此,使用“培训”代替“模特儿培训”(这也适用于“模特儿奖金”和其他)