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.