Exato Marcelo, o ORM do Kohana só provê isso através do as_array() como já foi citado algumas vezes aqui
$resultado = $ORM->....find_all()->as_array(); http://br.php.net/manual/pt_BR/function.serialize.php Cache::instance()->set(...serialize($resultado)); Depois recuperar em outro ponto do sistema: Cache::instance()->get(...); foreach($objeto as $o) ... Só vejo um problema .. você está usando Cache da forma errada :D Isso deveria estar sendo feito com Sessão e não com Cache :D Pois o objetivo do Cache é diferente do que deseja. Em 23 de novembro de 2011 10:29, Marcelo Rodrigo <[email protected]>escreveu: > Obrigado pela ajuda Felipe. > > Mas o cache que eu comentava era um pouco diferente. > O que quero fazer é guardar todo o objeto usando o Kohana_Cache e não o > cache de queries do ORM. > > > Algo neste sentido: > $objeto = ORM::Factory('tabela')->where(...)->find_all(); > Cache::instance()->set(...); > > Depois recuperar em outro ponto do sistema: > Cache::instance()->get(...); > foreach($objeto as $o) ... > > > > > Atenciosamente, > > Marcelo Rodrigo > http://marcelorodrigo.com > > > Em 23 de novembro de 2011 08:46, felipe moraes <[email protected]>escreveu: > > >> http://www.google.com.br/search?gcx=c&sourceid=chrome&ie=UTF-8&q=kohana+database+cache >> >> http://kohanaframework.org/3.2/guide/api/ORM >> http://kohanaframework.org/3.2/guide/api/ORM#cached >> >> O link que comentei, onde o samsoir fala pq não é viável ter cache de >> resultado em orm eu não achei novamente [to em outro pc] .. depois eu posto >> .. vou trampar. >> >> a justificativa é +/- essa .. no ORM os dados são muito voláteis, basta >> um valor mudar para o cache ficar inválido .. ORM, como sabe é baseado em >> várias sub consultas a cada execute(). Aí, fica complicado gerenciar esse >> cache. >> >> ORM tem cache, das columas das tabelas, do SQL .. mas pelo que entendi >> não tem cache de resultado. Cache de resultado tem de ser feito pelo >> ->as_array() por que esse resultado é fácil serializar. Aí, você precisa >> gerenciar isso de acordo com os dados de entrada, perfil do usuário, etc. >> >> Se todo o ambiente [usuário, sessão, etc] for igual ao anterior, não >> ocorreu mudanças no banco (insert, update, delete) e o lifetime não venceu, >> mostra o resultado anterior. >> >> >> Em 23 de novembro de 2011 08:27, Marcelo Rodrigo >> <[email protected]>escreveu: >> >> Felipe, >>> Compartilha o link desta thread que você encontrou tal informação >>> >>> >>> Atenciosamente, >>> >>> Marcelo Rodrigo >>> http://marcelorodrigo.com >>> >>> >>> Em 23 de novembro de 2011 08:10, felipe moraes >>> <[email protected]>escreveu: >>> >>> Pelo que vi no fórum do kohana .. não tem mais cache pois os dados não >>>> são totalmente carregados .. >>>> >>>> ou vc serializa o ->as_array() .. ou extende o módulo database. >>>> >>>> Em 23 de novembro de 2011 07:58, felipe moraes >>>> <[email protected]>escreveu: >>>> >>>> foreach .. cria array .. e serializa com comando do php? >>>>> >>>>> por que é mesmo que o cache de banco não tá funcionando? você >>>>> configurou o cache dele? >>>>> >>>>> Em 22 de novembro de 2011 13:41, Marcelo Rodrigo >>>>> <[email protected]>escreveu: >>>>> >>>>>> Tentei serializar, sem sucesso. >>>>>> A informação que ele serializa, não contempla os valores que foram >>>>>> usados no Query Builder. >>>>>> >>>>>> Se eu der um find_all o objeto se transforma num result e perco a >>>>>> chamada ao ->serialize() por sua vez. >>>>>> To tentando achar outra alternativa aqui. >>>>>> >>>>>> >>>>>> Atenciosamente, >>>>>> >>>>>> Marcelo Rodrigo >>>>>> http://marcelorodrigo.com .. Ccria >>>>>> >>>>>> >>>>>> Em 21 de novembro de 2011 11:28, Beto <[email protected]>escreveu: >>>>>> >>>>>> Talvez como o GET disse serializando seja possível. >>>>>>> >>>>>>> Caso não vc pode fazer uma 'art-manha' , usa o as_array() e manda o >>>>>>> array pro cache, quando vc precisar do objeto vc pega o array do cache e >>>>>>> carrega nas colunas do objeto com o values() , tbm não sei se >>>>>>> resolveria o >>>>>>> problema, mas é uma outra forma de ser feito. >>>>>>> >>>>>>> []s >>>>>>> >>>>>>> >>>>>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >>>>>>> - - - - - - - >>>>>>> >>>>>>> Luiz Alberto S. Ribeiro [ Beto ] >>>>>>> @madeinnordeste >>>>>>> <http://www.twitter.com/madeinnordeste><http://beto.euqueroserummacaco.com> >>>>>>> http://beto.euqueroserummacaco.com >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> 2011/11/21 Get <[email protected]> >>>>>>> >>>>>>>> Ja tentou serializar? >>>>>>>> >>>>>>>> @rafaelget >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 2011/11/21 Marcelo Rodrigo <[email protected]> >>>>>>>> >>>>>>>>> Pessoal, >>>>>>>>> >>>>>>>>> Usando KO 3.2, alguém já tentou gravar em cache um objeto ORM >>>>>>>>> carregado com dados de um ->find_all()? >>>>>>>>> Na declaração do model já tentei setar o $_reload_on_wakeup = >>>>>>>>> false mas mesmo assim continuo com problemas e sempre dou de cara com >>>>>>>>> ... >>>>>>>>> >>>>>>>>> *ErrorException [ Warning ]: mysql_fetch_object(): supplied >>>>>>>>> argument is not a valid MySQL result resource.* >>>>>>>>> >>>>>>>>> .. assim que eu obtenho os dados do cache e tenho fazer um >>>>>>>>> foreach() >>>>>>>>> >>>>>>>>> Sei que se eu utilizar um ->as_array() após o find_all eu >>>>>>>>> conseguirei armazenar no cache, porque em vez de um Database_Result eu >>>>>>>>> terei um array. >>>>>>>>> Mas neste caso específico preciso armazenar o model em seu state >>>>>>>>> atual em cache. >>>>>>>>> >>>>>>>>> Alguma idéia? >>>>>>>>> >>>>>>>>> >>>>>>>>> Atenciosamente, >>>>>>>>> >>>>>>>>> Marcelo Rodrigo >>>>>>>>> http://marcelorodrigo.com >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo >>>>>>>>> "Kohana Php" dos Grupos do Google. >>>>>>>>> Para postar neste grupo, envie um e-mail para >>>>>>>>> [email protected]. >>>>>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para >>>>>>>>> [email protected]. >>>>>>>>> Para obter mais opções, visite esse grupo em >>>>>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo >>>>>>>> "Kohana Php" dos Grupos do Google. >>>>>>>> Para postar neste grupo, envie um e-mail para >>>>>>>> [email protected]. >>>>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para >>>>>>>> [email protected]. >>>>>>>> Para obter mais opções, visite esse grupo em >>>>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo >>>>>>> "Kohana Php" dos Grupos do Google. >>>>>>> Para postar neste grupo, envie um e-mail para >>>>>>> [email protected]. >>>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para >>>>>>> [email protected]. >>>>>>> Para obter mais opções, visite esse grupo em >>>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR. >>>>>>> >>>>>> >>>>>> -- >>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo >>>>>> "Kohana Php" dos Grupos do Google. >>>>>> Para postar neste grupo, envie um e-mail para >>>>>> [email protected]. >>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para >>>>>> [email protected]. >>>>>> Para obter mais opções, visite esse grupo em >>>>>> http://groups.google.com/group/kohana-php?hl=pt-BR. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> http://felipebastosweb.com.br >>>>> http://twitter.com/felipebastosweb >>>>> >>>> >>>> >>>> >>>> -- >>>> http://felipebastosweb.com.br >>>> http://twitter.com/felipebastosweb >>>> >>>> -- >>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >>>> Php" dos Grupos do Google. >>>> Para postar neste grupo, envie um e-mail para >>>> [email protected]. >>>> Para cancelar a inscrição nesse grupo, envie um e-mail para >>>> [email protected]. >>>> Para obter mais opções, visite esse grupo em >>>> http://groups.google.com/group/kohana-php?hl=pt-BR. >>>> >>> >>> -- >>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >>> Php" dos Grupos do Google. >>> Para postar neste grupo, envie um e-mail para >>> [email protected]. >>> Para cancelar a inscrição nesse grupo, envie um e-mail para >>> [email protected]. >>> Para obter mais opções, visite esse grupo em >>> http://groups.google.com/group/kohana-php?hl=pt-BR. >>> >> >> >> >> -- >> http://felipebastosweb.com.br >> http://twitter.com/felipebastosweb >> >> -- >> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >> Php" dos Grupos do Google. >> Para postar neste grupo, envie um e-mail para [email protected] >> . >> Para cancelar a inscrição nesse grupo, envie um e-mail para >> [email protected]. >> Para obter mais opções, visite esse grupo em >> http://groups.google.com/group/kohana-php?hl=pt-BR. >> > > -- > Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana > Php" dos Grupos do Google. > Para postar neste grupo, envie um e-mail para [email protected]. > Para cancelar a inscrição nesse grupo, envie um e-mail para > [email protected]. > Para obter mais opções, visite esse grupo em > http://groups.google.com/group/kohana-php?hl=pt-BR. > -- http://felipebastosweb.com.br http://twitter.com/felipebastosweb -- Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google. Para postar neste grupo, envie um e-mail para [email protected]. Para cancelar a inscrição nesse grupo, envie um e-mail para [email protected]. Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.
