[SP-pm] DB para JSON
Eden Cardim
eden at insoli.de
Mon Aug 20 06:41:32 PDT 2012
>>>>> "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
More information about the SaoPaulo-pm
mailing list