Bom acredito que seu relacionamento deva ser montado assim:
class Model_Uf extends ORM{
/*
Retirei o "s" do cidades pois é necessário se referir ao model e não
a tabela. Como no
caso só foi informado o nome do model ao relacionamento as_many o ORM
vai por default iniciar o valor da chave estrangeira no model cidade
como cidade_id e ira procurar o model cidade para fazer o
relacionamento.
DICA: O ORM por padrao irá tentar pluralizar o nome da tabela, mas
esse recurso nao funciona muito bem no portugues. Entao defina o nome
da tabela para evitar erros, e defina tb a chave primaria da tabela.
Com no exemplo baixo:
*/
protected $_primary_key = 'id';
protected $_has_many = array('cidade');
}
class Model_Cidade extends ORM{
//Para um model ter um relacionamento belongs_to ele deve conter a
chave estrangeira exatamente como é o caso do model uf.
//Você deve definir também a chave primária e o nome da tabela
protected $_primary_key = 'id';
protected $_has_many = array('cidade');
//Para definir um belongs_to deve-se seguir o padrão
'nome_relacionamento' => array('model' => 'model_relacionado',
'foreign_key' => 'chave_estrangeira_pertencente_ao_model' )
protected $_belongs_to = array('cidade' => array('model' => 'cidade',
'foreign_key' => 'uf_id'));
}
/*
Observe novamente a codificação abaixo:
'nome_relacionamento' => array('model' => 'model_relacionado',
'foreign_key' => 'chave_estrangeira_pertencente_ao_model' )
-No caso do belongs_to se vc definir o nome_relacionamento com o mesmo
nome do model não é necessario especificar o model dentro do array.
Ex.:
protected $_belongs_to = array('cidade' => array('foreign_key' => 'uf_id'));
-Se a sua chave estrangeira seguir o padrão model+identificador de
chave primaria (model:uf ex.: uf_id), somente é necessario cria o
relacionamento dessa forma.
Ex.: protected $_belongs_to = array('cidade' => array());
*/
Abraços, boa codificação
Em 27/01/11, Everton Pabon<[email protected]> escreveu:
> Lembrando que ‘cidades’ deve estar no singular porque é nome do seu Model e
> não da Tabela.
>
> protected $_has_many = array('cidade' => array());
>
>
>
>
>
> De: [email protected] [mailto:[email protected]] Em nome
> de [email protected]
> Enviada em: 25 January, 2011 23:29
> Para: Destinatários de e-mail de compilação
> Assunto: [kohana-php] E-mail de compilação para [email protected]
> - 2 mensagens em 1 tópico
>
>
>
> Resumo do tópico de hoje
>
> Grupo: http://groups.google.com/group/kohana-php/topics
>
> * relacionamento v3.0 <> [2 atualizações]
>
> Tópico: relacionamento v3.0
> <http://groups.google.com/group/kohana-php/t/6cc68b6c3a57ceb6>
>
> eude <[email protected]> Jan 25 11:02AM -0800 ^ <>
>
>
> Boa tarde,
>
> Estou fazendo um relacionamento entre as tabelas ufs e cidades. Sendo:
>
> class Model_Uf extends ORM{
>
> protected $_has_many = array('cidades');
>
> }
>
> class Model_Cidade extends ORM{
>
> protected $_belongs_to = array('cidade' => array('uf' => 'cidade',
> 'foreign_key' => 'uf_id'));
>
> }
>
> mas está dando erro.
>
> Alguém pode me ajudar.
>
> Obrigado.
>
>
>
> Beto <[email protected]> Jan 25 06:25PM -0200 ^ <>
>
>
> na versao 3 as coisas mudaram um pouco
>
> inves de :
>
> protected $_has_many = array('cidades');
>
>
> tente :
>
> protected $_has_many = array('cidades' => array());
>
>
> ve aqui q pode te ajudar.
>
> http://kohanaframework.org/guide/orm/relationships
>
>
> []´s
>
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - -
>
>
> Luiz Alberto S. Ribeiro [ Beto ]
> http://beto.euqueroserummacaco.com
>
>
>
>
>
>
> 2011/1/25 eude <[email protected]>
>
>
>
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php"
> dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php"
> dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>
>
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para
[email protected].
Para obter mais opções, visite esse grupo em
http://groups.google.com/group/kohana-php?hl=pt-BR.