我正在尝试使用Doctrine的 createTablesFromModels 方法从模型创建表。我有一个/model
文件夹,我保留了我的模型,但它取决于文件名如何生成表。
在3个文件中,我有以下内容:
class Item extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('nombre', 'string', 45, array(
'notnull' => true
));
$this->hasColumn('enunciado', 'string', 90, array(
'notnull' => true
));
$this->hasColumn('imagen_reposo', 'string', 90);
$this->hasColumn('imagen_movimiento', 'string', 90);
}
public function setUp() {
$this->hasMany('Prueba as Pruebas', array(
'refClass' => 'ItemPrueba',
'local' => 'item_id',
'foreign' => 'prueba_id'
));
}
}
class Prueba extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('nombre', 'string', 45, array(
'notnull' => true
));
$this->hasColumn('consigna', 'clob', 65535);
$this->hasColumn('consentimiento', 'clob', 65535);
$this->hasColumn('codigo', 'string', 45);
}
public function setUp() {
$this->hasMany('Item as Items', array(
'refClass' => 'ItemPrueba',
'local' => 'prueba_id',
'foreign' => 'item_id'
));
}
}
class ItemPrueba extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('item_id', 'integer', null, array(
'primary' => true
));
$this->hasColumn('prueba_id', 'integer', null, array(
'primary' => true
));
}
}
我只是想做多对多的关系。 当我使用这个名字时:
/models/tableone.php
/models/tabletwo.php
/models/tableoneTabletwo.php
它会创建以下表 关系。
http://i52.tinypic.com/25hpdo2.png
当我使用这个名字时:
/models/item.php
/models/prueba.php
/models/itemPrueba.php
它会创建没有任何关系
的表格更多信息: 我正在使用codeIgniter框架并将Doctrine 1.2添加为插件
答案 0 :(得分:0)
添加
$this->setTableName('tablename');
应该做你需要的。 Doctrine使用一些约定来标识关系和表。它通常根据类猜测表的名称,但我已经看过多次失败。设置表名应该符合你的要求。