Doctrine Mysql中的关系问题,条令得到以下错误:条令\u表\u异常:未知关系别名模型\u训练
我对教义中的关系有问题。在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
$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”元素,则使用表定义的名称。因此,使用“培训”代替“模特儿培训”(这也适用于“模特儿奖金”和其他)