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.
