..:: MX Studio Fóruns ::..: Array do Relacionamento ONE_TO_MANY - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Array do Relacionamento ONE_TO_MANY Utilização do Array da Classe que possui a chave primária.

#1 User is offline   ayslan 

  • Group: Membros
  • Posts: 13
  • Joined: 24-August 10

Posted 17 December 2010 - 08:37 PM

Olá Pessoal,

Alguém saberia me explicar como eu utilizo o array da classe que refere-se ao "N" do relacionamento 1-N?

A situação é a seguinte:

Um objeto cliente possui vários telefones, ou seja, uma situação simples.

A engenharia reversa da classe Client gerou a seguinte linha de código:
$this->_addForeignRelation('fones', self::ONE_TO_MANY, 'Fone', 'foneClientId', null, null, null);


Na classe Fone gerou a seguinte linha de código:
 $this->_addField('foneClientId', 'foneClientId', 'int', 11, array('notnull' => true, 'foreign' => '1', 'onUpdate' => 'CASCADE', 'onDelete' => 'CASCADE', 'linkOn' => 'clientId', 'class' => 'Client'));


O que eu gostaria de saber é como utilizar o array de fones da classe Client. Em uma consulta simples, como segue, ele não preenche esse array:
$clientObj			
	->where("clientName like '%" . $searchName . "%'")
	->limit($init, $quantityPerPage)
	->order($orderBy, $orderDirection)					
	->find();


Depois descobri que é possível utilizar um método chamado getLink() como segue:
			
	$fones = $clientObj->getLink('fones');
	echo $fones[0]->foneNum;


Porém, o que eu preciso mesmo é mostrar uma listagem de clientes com seus telefones, como segue:

NOME_______________TELEFONE 1__________TELEFONE 2
-----------------------------------------------------
Nome do Cliente 1______1234-5678 __________8765-4321
Nome do Cliente 2______4321-8765 __________5678-1234


O que eu gostaria é de utilizar o objeto client e seu array de fones como segue:
while($clientObj->fetch())
{
    echo '<td>' . clientObj->clientName . '</td>';
    echo '<td>' . clientObj->fones[0]->foneNumber . '</td>';
    echo '<td>' . clientObj->fones[1]->foneNumber . '</td>';
}



Ou tenho mesmo que fazer assim, que foi a única forma que consegui(?):

while($clientObj->fetch())
{
    $fones = $clientObj->getLink('fones');
    echo '<td>' . clientObj->clientName . '</td>';
    echo '<td>' . $fones[0]->foneNumber . '</td>';
    echo '<td>' . $fones[1]->foneNumber . '</td>';
}


Obs.: Estou utilizando o Lumine 1.5.7.


Valeu, galera!

Deus abençoe a todos vocês!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)