Kohana ORM Aliasing und „Der Versuch, Eigentum von Nicht-Objekt zu erhalten“
-
26-09-2019 - |
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
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,:)