Opa, cheguei e nao li tudo ..
Acho que fez uma arvora de tres niveis: filho, pai e avo ;)
Imagino que tenha colocado ..
Model Algo
Belongs_to pai array model Algo
Sua chave estrangeira de si proprio deve ser pai_id
Assim, o avo é o pai do pai (obvio)
$filho ....
$pai ... $filho-pai;
$avo ... $filho-pai-pai;
Neste caso, vc pode ordenar por pai_id ..
E para ordenar pelo avo, tem de usar with(campo belongs nome pai) ..
Fica, order_by("pai.pai_id desc")
Se ainda nao resolveu, ve se isso resolve.
Enviado via sp android
Em 24/05/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.