DBIx::Class++
2012/8/20 Renato Santos <[email protected]>: > 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" and "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 > > > =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 > =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
