Kohana ORM Aliasing y “Tratar de obtener la propiedad de no-objeto”
-
26-09-2019 - |
Pregunta
Tengo las siguientes tablas de la base de datos:
- equipos:
- id
- Nombre
- partidos:
- id
- team1_id
- team2_id
he definido las siguientes href="http://docs.kohanaphp.com/libraries/orm" rel="nofollow noreferrer"> ORM modelos Kohana aplicación 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');
}
El código siguiente en un controlador:
$match = ORM::factory('match',1);
echo $match->team1_id->name; /* <-- */
es tirar el siguiente error en la Linke marcado con /* <--- */
:
Tratando de obtener la propiedad de no-objeto
El marco está dando el valor de la clave externa en lugar de una referencia a una instancia de Match_Model como debería (dando la has_many y belongs_to propiedades indicadas).
Me estoy perdiendo algo?
Nota: Por si acaso, he añadido el 'match' => 'matches'
plural irregular en application / config / inflector.php
Solución
resuelto! La comunidad Kohana me dio la respuesta :
El valor correcto para el $ belongs_to propiedad es:
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'); }
El blog_posts tabla de base de datos sería tener 2 columnas ahora, blog_posts.author_id y blog_posts.editor_id, y ambos lo haría tienen valores que existen en users.id.
Parece que me he perdido esa línea,:)