Felipe do jeito que voce falou deu certo em parte funcionou para o pai
menos para o avo

$accounts = ORM::Factory('filho')
->with('pai')
->order_by('pai.name', 'ASC')

só que para o avo nao deu certo porque o filho nao tem relação direta com o
avo e sim com o pai
entao como ficaria para ordenar o avo?
tentei isso mas nao deu

$accounts = ORM::Factory('filho')
->with('avo')
->order_by('avo.name', 'ASC')

Database_Exception [ 1054 ]: Unknown column 'avo.name' in 'order clause'


Em 24 de maio de 2013 13:49, Fabyo Guimaraes <[email protected]> escreveu:

> Valeu Felipe vou tentar dessa maneira tbm
>
>
>
> Em 24 de maio de 2013 13:11, felipe bastos <[email protected]> escreveu:
>
> 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.
>>
>>
>>
>
>

-- 
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