Kohana ORM Aliasing e “Cercando di ottenere la proprietà di non-oggetto”
-
26-09-2019 - |
Domanda
Ho le seguenti tabelle nel database:
- squadre:
- id
- nome
- incontri:
- id
- team1_id
- team2_id
Ho definito i seguenti ORM modelli nel mio Kohana applicazione 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');
}
Il seguente codice in un controllore:
$match = ORM::factory('match',1);
echo $match->team1_id->name; /* <-- */
sta gettando il seguente errore sul linke contrassegnati con /* <--- */
:
Cercando di ottenere la proprietà di non-oggetto
Il quadro è ottiene il valore della chiave esterna anziché un riferimento a un'istanza Match_Model come dovrebbe (dando la has_many e belongs_to proprietà riportate).
Mi sto perdendo qualcosa?
Nota: Solo nel caso, ho aggiunto il 'match' => 'matches'
plurale irregolare application / config / inflector.php
Soluzione
RISOLTO! La comunità Kohana mi ha dato la risposta :
Il valore corretto per il $ belongs_to proprietà è:
class Match_Model extends ORM {
protected $belongs_to = array('team1' => 'team', 'team2' => 'team');
}
Il documentazione afferma che:
class Blog_Post_Model extends ORM { protected $belongs_to = array('author' => 'user', 'editor' => 'user'); }
Il blog_posts tabella del database sarebbe avere 2 colonne ora, blog_posts.author_id e blog_posts.editor_id, ed entrambi avrebbero hanno valori che esistono in users.id.
Sembra che ho perso quella linea,:)