hum, foi mau... pai está ligado com avo e não o filho...
cara, eu nunca teste, mais de repente da para usar with com pai e avo,
senão tenta com JOIN.
Outra solução é executar a query assim:
$query = "
SELECT
f.id
FROM
filho f,
pai p,
avo a
WHERE
f.pai_id = p.id AND
p.avo_id = a.id
ORDER BY
a.nome,
f.expiration_date,
LIMIT
0, 50";
$resultado = DB::query(Database::SELECT,$query)->execute();
foreach($resultado as $r) {
$filho = ORM::Factory('filho',$r['id']);
echo $filho->name;
echo $filho->pai->name;
echo $filho->pai->avo->name;
}
Você pode para otimizar o tempo já trazer no resultado do select todas as
informações que quer mostrar, não precisando carregar o filho a cada
interação... aí fica a seu critério.
Isso deve resolver.
Abs
Atenciosamente,
*Paulo Duarte*
Inteligência Web - Comunicação e Sistemas
Fone: (48) 3028.5141 / 8426.3629
E-mail: [email protected]
Skype: paulo.iw
-------------------------------------------------------------------------------------------
Aviso de confidencialidade:
Esta mensagem da Empresa IW - Inteligência Web Comunicação e Sistemas,
empresa privada, é enviada exclusivamente a seu destinatário e pode conter
informações confidenciais, protegidas por sigilo profissional. Sua
utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se
você a recebeu indevidamente, queira, por gentileza, reenviá-la ao
emitente, esclarecendo o equívoco.
Em 24 de maio de 2013 11:33, Fabyo Guimaraes <[email protected]> escreveu:
> Valeu Paulo e Beto
>
> eu tentei usar o with e o order by mas esta dando esse erro
>
> ErrorException [ 4 ]: syntax error, unexpected '$filhos' (T_VARIABLE) ~
> APPPATH\classes\Controller\Filhos.php [ 20 ]
>
> linha 20 : $filhos = ORM::Factory('filho')
>
> linha 21 : ->with('avo')
>
>
>
> Em 24 de maio de 2013 11:19, Paulo Duarte
> <[email protected]>escreveu:
>
>> Cara, o avô está em outra tabela...
>> se não me engano você tem q fazer algo assim (se for utilizar ORM):
>> $filhos = ORM::Factory('filho')
>> ->with('avo')
>> ->offset(0)
>> ->limit(50)
>> ->order_by('filho.expiration_date', 'ASC')
>> ->order_by('avo.nome', 'ASC')
>> ->find_all();
>>
>> Atenciosamente,
>>
>>
>> *Paulo Duarte*
>> Inteligência Web - Comunicação e Sistemas
>>
>> Fone: (48) 3028.5141 / 8426.3629
>> E-mail: [email protected]
>> Skype: paulo.iw
>>
>>
>> -------------------------------------------------------------------------------------------
>> Aviso de confidencialidade:
>> Esta mensagem da Empresa IW - Inteligência Web Comunicação e Sistemas,
>> empresa privada, é enviada exclusivamente a seu destinatário e pode conter
>> informações confidenciais, protegidas por sigilo profissional. Sua
>> utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se
>> você a recebeu indevidamente, queira, por gentileza, reenviá-la ao
>> emitente, esclarecendo o equívoco.
>>
>>
>> Em 24 de maio de 2013 10:32, Fabyo <[email protected]> escreveu:
>>
>>> Oi Pessoal
>>>
>>> eu estava usando o recurso do kohana sobre relacionamento de tabelas e
>>> estava perfeito, ate que eu precisei ordenar um campo da tabela e deu erro
>>> estou testando e acho que para ordenar do jeito que eu quero nao vou
>>> poder usar o modo padrado do kohana
>>> vou postar um exemplo para voces entenderem melhor
>>>
>>> $filhos = ORM::Factory('filho')
>>> ->offset(0)
>>> ->limit(50)
>>> ->order_by('expiration_date', 'ASC')
>>> ->find_all();
>>>
>>> foreach ($filhos as $filho)
>>> {
>>> echo $filho->name;
>>> echo $filho->pai->name;
>>> echo $filho->pai->avo->name;
>>> }
>>>
>>> esse exemplo funciona perfeitamente só que precisei ordenar o nome do
>>> avo ai que eu percebi um problema
>>> do jeito que eu estou fazendo acima nao tem como certo?
>>>
>>> vou ter que fazer de outra maneira? se for isso blz eu consigo fazer,
>>> mas só queria uma opniao pra saber se tem como fazer continuando usando o
>>> exemplo acima
>>>
>>> valeu
>>>
>>> --
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>> Php" dos Grupos do Google.
>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>> envie um e-mail para [email protected].
>>> Para postar neste grupo, envie um e-mail para
>>> [email protected].
>>> Visite este grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.
>>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>> --
>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>> Php" dos Grupos do Google.
>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>> envie um e-mail para [email protected].
>> Para postar neste grupo, envie um e-mail para [email protected]
>> .
>> Visite este grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.
>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>>
>>
>>
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
> envie um e-mail para [email protected].
> Para postar neste grupo, envie um e-mail para [email protected].
> Visite este grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>
>
>
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um
e-mail para [email protected].
Para postar neste grupo, envie um e-mail para [email protected].
Visite este grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.