[SP-pm] DB para JSON

Jose Nilton jniltinho at gmail.com
Mon Aug 20 18:49:05 PDT 2012


Esse modo funcionou:

    my $rs = $c->model('Users')->search({adm => 2}, {columns => [qw/ id
name email  adm active /]});
    $rs->result_class('DBIx::Class::ResultClass::HashRefInflator');


 Assim retorno só algumas colunas em json na View.

Obrigado a todos


Em 20 de agosto de 2012 10:41, Eden Cardim <eden em insoli.de> escreveu:

> >>>>> "Nelson" == Nelson Ferraz <nferraz em gmail.com> writes:
>
>     Nelson> Eu sei que a pergunta foi para o Catalyst, mas não custa
> mostrar como
>     Nelson> se faz em outros frameworks...
>
>     Nelson>     my @all = $schema->resultset('Users')->all;
>
> Na verdade, isso não funciona. Teria que ser:
>
>    my @all = $schema->resultset('Users')
>      ->search_rs({},
>        { result_class 'DBIx::Class::ResultClass::HashRefInflator' })->all;
>
> Senão a saída vai ser parecida com isso:
>
>
> ["MyApp::Schema::Result::User=HASH(0x7fbe8c0b2210)","MyApp::Schema::Result::User=HASH(0x7fbe8c0c1480)","MyApp::Schema::Result::User=HASH(0x7fbe8c0c1438)","MyApp::Schema::Result::User=HASH(0x7fbe8c022360)"]
>
> E esse é justamente o problema do OP, como extrair a estrutura correta
> dos objetos, e isso independe do framework web.
>
> O código correto, com Mojolicious::Lite:
>
>     my $self = shift;
>     my @all = $schema->resultset('Users')
>      ->search_rs({}, { result_class
> 'DBIx::Class::ResultClass::HashRefInflator' })->all;
>     $self->render( json => \@all );
>
> O código correto, com Catalyst:
>
>     my $c = shift;
>     @{$c->stash->{rows}} = $c->model('DB::Users')
>      ->search_rs({}, { result_class
> 'DBIx::Class::ResultClass::HashRefInflator' })->all;
>     $c->forward('View::JSON');
>
> --
> Eden Cardim                        Software sob medida
> +55 11 9644 8225              Gestão de projetos de software
> edenc em insoli.de            Gestão de servidores e bancos de dados
>                             Treinamento em soluções Open Source
>      Insolide
> Soluções de TI Ltda.     Converse conosco a respeito de como nossas
>  http://insoli.de      soluções podem ajudar o seu projeto ou empresa
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>



-- 
.................................................................
  "Com Deus todas as coisas são possíveis"
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120820/6e80e1e5/attachment.html>


More information about the SaoPaulo-pm mailing list