2010-12-11 9 views
0

Ich versuche, Tabellen aus Modellen mit der createTablesFromModels Methode von Doctrine zu erstellen. Ich habe einen /model Ordner, in dem ich meine Modelle aufbewahre, aber es hängt von den Dateinamen ab, wie die Tabellen erzeugt werden.Doktrin, verschiedene Dateinamen, verschiedene Tabellengenerierung

Innerhalb 3 Dateien habe ich folgendes:

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 
    )); 
} 
} 

Ich möchte nur eine viele zu viele Beziehung zu tun. Als ich diesen Namen verwenden:

/models/tableone.php 
/models/tabletwo.php 
/models/tableoneTabletwo.php 

es erstellt den folgenden Tabellen mit den Beziehungen.

http://i52.tinypic.com/25hpdo2.png

Als ich diesen Namen verwenden:

/models/item.php 
/models/prueba.php 
/models/itemPrueba.php 

es schafft die Tabellen ohne Beziehungen

weitere Informationen: I codeigniter Rahmen bin mit und fügte hinzu, Lehre 1.2 als Plugin

Antwort

0

Hinzufügen

sollte tun, was Sie brauchen. Doctrine verwendet einige Konventionen, um Beziehungen und Tabellen zu identifizieren. In der Regel wird der Name der Tabelle basierend auf der Klasse geschätzt, aber ich habe dieses Fehlschlagen viele Male gesehen. Das Einstellen des Tabellennamens sollte tun, was Sie wollen.

+0

Danke für die Antwort, aber es hat nicht funktioniert. Ich musste den Dateinamen pueba.php in prueb.php ändern. Seltsame Lösung, ich weiß immer noch nicht, warum ich den Dateinamen pueba.php nicht in meiner Modellklasse verwenden kann. – petingo0

Verwandte Themen