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!

Help














