Obrigado, é que eu nao queria ter que escrever a query toda, estava
tentando aproveitar a praticidade do ORM no esquema que eu falei que
funciona:

echo $filho->avo->name;

só que como nao vai ter jeito vou montar a query mesmo

valeu


Em 24 de maio de 2013 12:01, Beto <[email protected]> escreveu:

> acho q vc tem q usar o nome da tabela. Se a tabela é 'avos' ( no plural,
> como espera o comportamento padrao do ORM )
>
> $filhos = ORM::Factory('filho')
>         ->with('avo')
> ->offset(0)
>  ->limit(50)
> ->order_by('filho.expiration_date', 'ASC')
>        * ->order_by('avos.nome', 'ASC')*
>  ->find_all();
>
> tenta isso p ve se resolve.
>
> []s
>
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - -
>
> Luiz Alberto S. Ribeiro [ Beto ]
> @madeinnordeste 
> <http://www.twitter.com/madeinnordeste><http://beto.euqueroserummacaco.com>
> http://beto.euqueroserummacaco.com
>
>
>
>
>
> Em 24 de maio de 2013 11:53, Paulo Duarte 
> <[email protected]>escreveu:
>
> 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.
>>
>>
>>
>
>  --
> 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.


Responder a