Kohana Orm Aliasing e “tentando obter propriedades de não objeto”
-
26-09-2019 - |
Pergunta
Eu tenho as seguintes tabelas no banco de dados:
- equipes:
- Eu iria
- nome
- fósforos:
- Eu iria
- Team1_id
- Team2_id
Eu defini o seguinte Orm modelos no meu Kohana v2.3.4 Aplicação:
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');
}
O código a seguir em um controlador:
$match = ORM::factory('match',1);
echo $match->team1_id->name; /* <-- */
Está jogando o seguinte erro no Linke marcado com /* <--- */
:
Tentando obter propriedade de não objeto
A estrutura está produzindo o valor da chave estrangeira, em vez de uma referência a uma instância do MATCH_MODEL como deveria (dando ao Has_Many e pertence as propriedades declaradas).
Estou esquecendo de algo?
NOTA: Apenas para o caso, adicionei o plural irregular 'match' => 'matches'
no aplicativo/config/inflector.php
Solução
Resolvido! A comunidade Kohana me deu o responda:
O valor correto para a propriedade $ pertences_to é:
class Match_Model extends ORM {
protected $belongs_to = array('team1' => 'team', 'team2' => 'team');
}
o documentação declara:
class Blog_Post_Model extends ORM { protected $belongs_to = array('author' => 'user', 'editor' => 'user'); }
A tabela Blog_Posts Database teria 2 colunas agora, blog_posts.author_id e blog_posts.editor_id, e ambos teriam valores existentes em usuários.id.
Parece que eu perdi essa linha :)