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

Jose Nilton jniltinho at gmail.com
Tue Aug 21 04:44:19 PDT 2012


Desculpe foi só para ilustrar:

Está assim:

Banco: Agencias:
Tabela: users
Colunas: name, email, passwd, active, adm, create


Mas fiz assim:

sub retorna_mod_adm {
    my ($self) = @_;

        my $res = eval {
            $self->storage->dbh->selectrow_hashref( "SELECT email,name,adm
FROM postfix_users WHERE adm = 2");
        };
        do { print $@; return undef } if $@;
        return $res;

}



Essa função está no arquivo:
Myapp/lib/Model/Agencias.pm




Em 21 de agosto de 2012 08:33, Renato Santos <renato.cron em gmail.com>escreveu:

> Pera, só uma duvida.
>
> qual o package que está escrito no seu  Myapp/lib/Schema/Users.pm? pois
> não faz muito sentido o schema do banco chamar users (seria como se todas
> as tabelas fossem de sobre usuarios)
>
>
>
> 2012/8/21 Jose Nilton <jniltinho em gmail.com>
>
>> Corrigindo:
>>
>> No arquivo Myapp/lib/Schema/Users.pm não funciona,
>>
>> Só no Model:
>>
>> Myapp/lib/Model/Users.pm
>>
>>
>>
>> sub retorna_hora_do_banco {
>>     my ($self) = @_;
>>
>>       my $res = eval {
>>             $self->storage->dbh->selectrow_hashref( "select
>> current_time() as foo");
>>
>>         };
>>         do { print $@; return undef } if $@;
>>         return $res;
>>
>> }
>>
>> Funcionou corretamente
>>
>> Em 21 de agosto de 2012 08:24, Renato Santos <renato.cron em gmail.com>escreveu:
>>
>>
>>>
>>>
>>> 2012/8/21 Jose Nilton <jniltinho em gmail.com>
>>>
>>>> Assim funcionou,
>>>>
>>>> Na
>>>> Myapp/lib/Schema/Users.pm
>>>>
>>>> Coloquei:
>>>>
>>>>
>>>> sub retorna_hora_do_banco {
>>>>     my ($self) = @_;
>>>>
>>>>         return "Ola mundo";
>>>>
>>>> }
>>>>
>>>>
>>>> No controller:
>>>>
>>>> my $olaMundo = $c->model('Schema::Users')->retorna_hora_do_banco();
>>>>
>>>>
>>>>  $c->log->debug("Debug App: ".$olaMundo);
>>>>
>>>>
>>>> Como coloco alguma consulta SQL na função retorna_hora_do_banco ?
>>>>
>>>>  $self->storage->dbh->selectrow_hashref( "select current_time() as
>>> foo",
>>>                 undef, @args );
>>>
>>>> Pois queria colocar algumas consultas e retornar o array já convertido
>>>> em json
>>>>
>>>>  Você quer dizer retornar em array e converter pra JSON no
>>> controller->view ! não troquemos o lugar das coisas!
>>>
>>>>
>>>>
>>>>
>>>> Em 20 de agosto de 2012 23:41, Renato Santos <renato.cron em gmail.com>escreveu:
>>>>
>>>> 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 em 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 em 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 em 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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>
>>>>
>>>> --
>>>> .................................................................
>>>>   "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 em 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 em 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 em 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 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/20120821/2436f3e5/attachment.html>


More information about the SaoPaulo-pm mailing list