[SP-pm] Catalyst DBIx -> lista alguns campos

Renato Santos renato.cron at gmail.com
Mon Aug 20 19:41:17 PDT 2012


mas o Model *!=* Schema..

"Can't locate object method "retorna_hora_do_banco" via package
"DBIx::Class::ResultSet"
vc tentou $resultset->retorna_hora_do_banco

deve ser: $resultset->result_source->schema->retorna_hora_do_banco(..)

isso pois o Model só existe no contexto catalyst, e o schema serve
justamente para vc poder usar o schema do banco em qualquer applicação.



2012/8/20 Jose Nilton <jniltinho at gmail.com>

> Opa Leonardo, desse modo funcionou,
>
> Essa era a minha logica no primeiro post.
>
>
> Em 20 de agosto de 2012 18:31, Leonardo Ruoso <leonardo at ruoso.com>escreveu:
>
> Veja que você está chamando o método retorna_hora_do_banco de um
>> ResultSet, que deve mapear uma tabela no DB. Eu acho que um método como
>> retorna_hora_do_banco poderia estar no seu Model, provavelmente chamado DB
>> :-) Eu não me lembro se há um acessor default para retornar a hora do
>> banco, acho que não, mas meu primeiro impulso seria colocar esse método no
>> seu Model responsável pelo acesso ao DB e chamá-lo desse Model e não de um
>> ResultSet.
>>
>> Em 20 de agosto de 2012 18:24, Jose Nilton <jniltinho at gmail.com>escreveu:
>>
>>
>>> Fiz esse teste:
>>>
>>> "Can't locate object method "retorna_hora_do_banco" via package
>>> "DBIx::Class::ResultSet"
>>>
>>>
>>> sub retorna_hora_do_banco {
>>>     my ($self) = @_;
>>>
>>>         return "Ola mundo";
>>>
>>> }
>>>
>>>
>>> Coloquei no arquivo Myapp/lib/Schema/Schema.pm
>>>
>>>
>>>
>>> Em 20 de agosto de 2012 17:04, Renato Santos <renato.cron at gmail.com>escreveu:
>>>
>>>> Me confundi um pouco.... Explique o que você está querendo dizer cmo
>>>> Model, afinal, o model faz parte do MVC, e não do Schema do DBIC. Embora
>>>> seja con*fundido *quase sempre..
>>>>
>>>> Se vc precisa de alguma funcao, por exemplo, rodar uma SQL de preguiça
>>>> escrita a mão, vc pode adicionar ela no Schema, assim todos podem acessar
>>>> lá:
>>>>
>>>> de uma row pra um schema:
>>>> $row->result_source->schema
>>>>
>>>> de uma DBIx::Class::Row OU DBIx::Class::Resultset pra um schema:
>>>> $OBJECT->result_source->schema
>>>>
>>>> --------
>>>> então você pode fazer no Schema.pm algo assim:
>>>>
>>>>
>>>> sub retorna_hora_do_banco {
>>>>
>>>>         my $res = eval {
>>>>             $self->storage->dbh->selectrow_hashref( "select
>>>> current_time() as foo",
>>>>                 undef, @args );
>>>>         };
>>>>         do { print $@; return undef } if $@;
>>>>         return $res;
>>>>
>>>> }
>>>>
>>>> ps: nao testei a funcao, mas é basicamente isso.... mas cara.. na boa!
>>>>
>>>> --------
>>>>
>>>> outra hipotese, é vc estar falando disso:
>>>>
>>>>
>>>> http://search.cpan.org/~zarquon/Catalyst-Manual-5.9004/lib/Catalyst/Manual/Tutorial/04_BasicCRUD.pod#Create_a_ResultSet_Class
>>>>
>>>> 2012/8/20 Jose Nilton <jniltinho at gmail.com>
>>>>
>>>>>
>>>>> Outra coisa, como eu faço para criar um query SQL no Model, e como
>>>>> faço para criar outras funções SQL no Model que possa ser acessada do
>>>>> Controller.
>>>>>
>>>>> Desculpe essas perguntas bobas, coisa de iniciante no Catalyst
>>>>>
>>>>>
>>>>> Em 20 de agosto de 2012 16:51, Jose Nilton <jniltinho at gmail.com>escreveu:
>>>>>
>>>>> Boa tarde a todos,
>>>>>>
>>>>>> Gostaria de saber como eu faço para listar só alguns campos da tabela:
>>>>>>
>>>>>> Exemplo:
>>>>>>
>>>>>> Banco: agencia
>>>>>> Tabelas: users
>>>>>> Campos: id, login, email, password, adm, active, create.
>>>>>>
>>>>>> Não quero selecionar todos os campos, quero id, login, email, active.
>>>>>>
>>>>>> Obrigado
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> .................................................................
>>>>>   "Com Deus todas as coisas são possíveis"
>>>>>
>>>>> =begin disclaimer
>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> =end disclaimer
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Saravá,
>>>> Renato CRON
>>>> http://www.renatocron.com/blog/
>>>> @renato_cron <http://twitter.com/#%21/renato_cron>
>>>>
>>>>
>>>> =begin disclaimer
>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>  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: SaoPaulo-pm at pm.org
>>>  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: SaoPaulo-pm at pm.org
>>  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: SaoPaulo-pm at pm.org
>  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>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120820/9ad92eb4/attachment.html>


More information about the SaoPaulo-pm mailing list