Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Matheus P.

Relacionamento entre 3 tabelas - CakePHP 2

Recommended Posts

Estou com dificuldades de realizar e entender um relacionamento de 3 ou mais tabelas, já li várias documentações, mas travei nessa parte.

 

Eu preciso muito puxar o ['Type']['name'] na index.ctp da Releases.

 

Tabelas Participantes

Releases > Planes > Types

 

Na Releases, possui o plane_id e na Planes o type_id

 

Release Model

public $belongsTo = array(
        'Plane' => array(
            'className' => 'Plane',
            'foreignKey' => 'plane_id',
            'foreignKey' => 'type_id'
        ),
        'Bank' => array(
            'className' => 'Bank',
            'foreignKey' => 'bank_id'
        )
    ); 

Plane Model

public $belongsTo = array(
        'Type' => array(
            'className' => 'Type',
            'foreignKey' => 'type_id'
        )
    ); 

Select (ReleasesController)

$releases = $this->Release->find('all', array(
            'conditions' => array (
              'Release.status' => 1
            ),
            'order' => array('Release.created' => 'ASC')
        )); 
SELECT `Release`.`id`, `Release`.`emission`, `Release`.`pay`, `Release`.`confirm`, `Release`.`plane_id`, `Release`.`amount`, `Release`.`bank_id`, `Release`.`status`, `Release`.`created`, `Release`.`modified`, `Plane`.`id`, `Plane`.`name`, `Plane`.`style`, `Plane`.`type_id`, `Plane`.`status`, `Plane`.`created`, `Plane`.`modified`, `Bank`.`id`, `Bank`.`name`, `Bank`.`status`, `Bank`.`created`, `Bank`.`modified` FROM `gref`.`releases` AS `Release` LEFT JOIN `gref`.`planes` AS `Plane` ON (`Release`.`plane_id` = `Plane`.`id`) LEFT JOIN `gref`.`banks` AS `Bank` ON (`Release`.`bank_id` = `Bank`.`id`) WHERE `Release`.`status` = 1 ORDER BY `Release`.`created` ASC 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não analisei detalhadamente o relacionamento das tabelas mas $hasOne ou $hasMany não se encaixaria no contexto?

Se possível postar os relacionamentos(MER/DER).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não analisei detalhadamente o relacionamento das tabelas mas $hasOne ou $hasMany não se encaixaria no contexto?

Se possível postar os relacionamentos(MER/DER).

 

Eu imagino que o hasOne sirva, pelo o que eu entendi da documentação, mas não sei aplicar em um cake 2, nunca utilizei esse recurso

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.