[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