Kohana ORM et Aliasing « Essayer d'obtenir la propriété de non-objet »
-
26-09-2019 - |
Question
Je les tableaux ci-dessous dans la base de données:
- équipes:
- id
- nom
- matches:
- id
- team1_id
- team2_id
J'ai défini les modèles suivants ORM dans mon Kohana de l'application v2.3.4:
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');
}
Le code suivant dans un contrôleur:
$match = ORM::factory('match',1);
echo $match->team1_id->name; /* <-- */
jette l'erreur suivante sur la linke marquée par /* <--- */
:
Essayer d'obtenir la propriété de non-objet
Le cadre donne des la valeur de la clé étrangère au lieu d'une référence à une instance Match_Model comme il devrait (en donnant la has_many et belongs_to propriétés indiquées).
Est-ce que je manque quelque chose?
Note: Juste au cas où, je l'ai ajouté le 'match' => 'matches'
pluriel irrégulier dans l'application / config / inflector.php
La solution
RESOLU! La communauté Kohana m'a donné l'rel="nofollow répondre :
La valeur correcte pour le $ belongs_to propriété est:
class Match_Model extends ORM {
protected $belongs_to = array('team1' => 'team', 'team2' => 'team');
}
class Blog_Post_Model extends ORM { protected $belongs_to = array('author' => 'user', 'editor' => 'user'); }
La table de base de données blog_posts serait ont maintenant 2 colonnes, blog_posts.author_id et blog_posts.editor_id, et les deux seraient ont des valeurs qui existent dans users.id.
Il semble que je l'ai raté cette ligne,:)