ah sim! tem o columns! eu tentei lembro nome dele na pressa, mas não lembrava!
http://search.cpan.org/~frew/DBIx-Class-0.08198/lib/DBIx/Class/ResultSet.pm#columns Value: \@columns Shortcut to request a particular set of columns to be retrieved. Each column spec may be a string (a table column name), or a hash (in which case the key is the as value, and the value is used as the select expression). Adds me. onto the start of any column without a . in it and sets select from that, then auto-populates as from select as normal. (You may also use the cols attribute, as in earlier versions of DBIC.) Essentially columns does the same as "select"<http://search.cpan.org/~frew/DBIx-Class-0.08198/lib/DBIx/Class/ResultSet.pm#select> and "as"<http://search.cpan.org/~frew/DBIx-Class-0.08198/lib/DBIx/Class/ResultSet.pm#as> . -- só pra ficar documentado! 2012/8/20 Jose Nilton <[email protected]> > 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 <[email protected]> escreveu: > > >>>>> "Nelson" == Nelson Ferraz <[email protected]> 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 >> [email protected] 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: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> > > > > -- > ................................................................. > "Com Deus todas as coisas são possíveis" > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron <http://twitter.com/#!/renato_cron>
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
