Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal tudo bom?
Galera, me de uma força aqui. Tenho 3 models FolhaDePagamento, HistoricoDeFolhaDePagamento, EventoFinanceiro e suas respectivas tabelas e controllers tudo certinho trabalhando dentro das convenções do CakePHP. No model folha de pagamento coloquei la o relacionamento com o histórico:
... class FolhaDePagamento extends AppModel ...
public $hasMany = array(
'HistoricoDeFolhaDePagamento' => array(
'className' => 'HistoricoDeFolhaDePagamento',
'foreignKey' => 'folha_de_pagamento_id'
)
);
...
E no histórico coloquei o relacionamento com os eventos:
... class HistoricoDeFolhaDePagamento extends AppModel ...
public $hasOne = array( 'EventoFinanceiro' );
Só que quanto eu faço um read em uma folha de pagamento o evento financeiro me vem o id do evento ao invés do evento. Alguém ai pode me dizer o que estou fazendo de errado?
Obrigado a todos.
Sim elias_farah ai na demonstração eu coloquei o $hasOne, mas agora esta com $belongsTo, mas, mesmo assim quanto seleciono uma folha de pagamento tenho que fazer um outro select somente dos históricos para ter o nome do evento, de uma olhada para ver se você entende melhor a situação
...
[HistoricoDeFolhaDePagamento] => Array
(
[0] => Array
(
[id] => 18
[folha_de_pagamento_id] => 28
[user_id] => 2
[created] => 2012-05-10 18:02:36
[evento_financeiro_id] => 1
[observacao] => Observação do evento financeiro
)
)
...Amigo,
se você criar o relacionamento HABTM corretamento não será necessário criar o terceiro Model.
Ex:
Artigo x tags
o Model ArtigoTag não é necessário ser criado pois o cake já cria-o para você.
Tente usar tb o Behavior Containable.
abraços
Uai Eduiagami, mas eu não criei este terceiro model. Alias eu nunca criei um terceiro model para HABTM. No caso em questão é somente um model HistoricoDeFolhaDePagamento e outro FolhaDePagamento.
Olá William,
Teria como você postar o array inteiro que está vindo no read? Não deu pra entender muito bem o que você quiz dizer com:
me vem o id do evento ao invés do evento
Uma regra básica para relacionamentos é:
Quando se tem um relacionamento hasOne, o belongsTo fica sempre no model que tem a foreign-key.
Ex.:
---------------
Post
---------------
id
title
description
category_id
---------------
---------------
Category
---------------
id
name
---------------
Neste caso, na classe Post entra o belongsTo Category e na classe Category entra o hasOnde Post
Você colocou os $belongsTo corretamente ?
Veja aqui : http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html