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

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top