Frage

Ich habe die folgenden Tabellen in der Datenbank:

  • Teams:
    • id
    • name
  • Treffer:
    • id
    • team1_id
    • team2_id

habe ich definiert die folgenden ORM Modelle in meinem Kohana v2.3.4 Anwendung:

class Match_Model extends ORM {
  protected $belongs_to = array('team1_id' => 'team', 'team2_id' => 'team');
}

class Team_Model extends ORM {
  protected $has_many = array('matches');
}

Der folgende Code in einem Controller:

$match = ORM::factory('match',1);
echo $match->team1_id->name; /* <-- */

Werfen den folgenden Fehler auf dem linken mit /* <--- */ markiert:

Der Versuch, Eigentum von Nicht-Objekt zu erhalten

Der Rahmen wird der Wert des Fremdschlüssels ergibt anstelle eines Verweises auf eine Match_Model Instanz wie es sein sollte (die has_many geben und belongs_to Eigenschaften angegeben).

Bin ich etwas fehlt?

Hinweis: Nur für den Fall, habe ich die unregelmäßigen Plural 'match' => 'matches' in application / config / inflector.php

hinzugefügt
War es hilfreich?

Lösung

GELÖST! Die Kohana Gemeinde gab mir die Antwort

Der richtige Wert für den $ belongs_to Eigenschaft ist:

class Match_Model extends ORM {
  protected $belongs_to = array('team1' => 'team', 'team2' => 'team');
}

Die Dokumentation heißt es:

class Blog_Post_Model extends ORM { 
    protected $belongs_to = array('author' => 'user', 'editor' => 'user'); 
}
     

Die blog_posts Datenbanktabelle würde   haben 2 Spalten jetzt,   blog_posts.author_id und   blog_posts.editor_id, und beide würden   haben Werte, die in users.id existieren.

Es scheint, dass ich verpasst habe, dass Linie,:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top