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

È stato utile?

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,:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top