2009-12-22 3 views
8

Ich benutze Kohana v3 und ORM, ich habe zwei Modelle, Model_A und Model_B von "has_many" durch eine Pivot-Tabelle, die eine zusätzliche Spalte hat. Ich kann Daten in dieser Spalte in der Pivot-Tabelle mit dem dritten Parameter der add()-Funktion speichern, aber ich kann nicht herausfinden, wie diese Spalte mit ORM gelesen wird.Kohana 3.0.x ORM: Lesen Sie zusätzliche Spalten in Pivot-Tabellen

Irgendwelche Ideen? Danke im Voraus.

Antwort

8

Sie müssen ein Modell erstellen, das auf dieser Pivot-Tabelle basiert, wenn Sie auf diese zusätzliche Spalte zugreifen möchten, sagen wir mal Model_A_B.

class Model_A_B extends ORM { 

    protected $_belongs_to = array(
     'A' => array(), 
     'B' => array() 
    ); 

} 

Wenn dann $a eine Instanz von Model_A ist und $b eine Instanz von Model_B ist, erhalten wir die Model_A_B Instanz durch den Aufruf:

$ab = ORM::factory('A_B', array('A_id' => $a, 'B_id' => $b)); 

if ($ab->loaded()) { 
    // do stuff 
} 
+0

Sie zeigen einen Wert aus einer Pivot abzurufen aber Kannst du auch einen Weg zeigen, den Wert im Pivot zu setzen? – Luke

+0

Wo würden Sie dieses Modell speichern? ... Modelle/a/b.php? – Brenden

+0

@Brenden: Ja, Modelle/a/b.php – dusan