ORM com metodos personalizados

19 views
Skip to first unread message

DS interativa | PHP Grupos

unread,
Nov 20, 2013, 9:46:08 AM11/20/13
to kohan...@googlegroups.com
como eu conseguiria criar metodos dentro de um ORM de usuarios, por
exemplo: obtemUsuarios()

para usar
orm::factory('usuarios')->obtemUsuarios();
trazendo um vetor pronto

sabendo que meus usuarios tem status ativo='S' e excluido='N'

tentei aqui criando o metodo convencionalmente e retornando o $this para
o chainnable mas nao vem nada

valeu

Marcelo Rodrigo

unread,
Nov 20, 2013, 10:02:06 AM11/20/13
to kohan...@googlegroups.com
Poste seu código para que o pessoal possa te ajudar DS interativa.


Atenciosamente,

Marcelo Rodrigo
http://marcelorodrigo.com




--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para kohana-php+unsubscribe@googlegroups.com.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/kohana-php.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

DS interativa | PHP Grupos

unread,
Nov 20, 2013, 10:28:16 AM11/20/13
to kohan...@googlegroups.com
é Giovanni (rs)

na realidade, tenho somente o model estendendo o ORM no convencional
gostaria de criar os metodos dentro desse model para usar nos controllers ao inves de criar dentro do controller diretamente

a "ideia" seria essa, tentei e não tive sucesso !!
class Model_Usuario extends ORM
{
   
    public function obtemUsuarios(){
        $hResult = $this->where('ativo','=','S')->find_all();
        return $this;

    }

}


Em 20/11/2013 13:02, Marcelo Rodrigo escreveu:
Poste seu código para que o pessoal possa te ajudar DS interativa.


Atenciosamente,

Marcelo Rodrigo
http://marcelorodrigo.com


Em 20 de novembro de 2013 12:46, DS interativa | PHP Grupos <ph...@dsinterativa.com.br> escreveu:
como eu conseguiria criar metodos dentro de um ORM de usuarios, por exemplo: obtemUsuarios()

para usar
orm::factory('usuarios')->obtemUsuarios();
trazendo um vetor pronto

sabendo que meus usuarios tem status ativo='S' e excluido='N'

tentei aqui criando o metodo convencionalmente e retornando o $this para o chainnable mas nao vem nada

valeu


--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para kohana-php+...@googlegroups.com.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/kohana-php.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para kohana-php+...@googlegroups.com.

Paulo Duarte

unread,
Nov 20, 2013, 10:58:16 AM11/20/13
to kohan...@googlegroups.com
no return, troca o $this por $hResult;


Abs

Atenciosamente,


Paulo Duarte
Inteligência Web - Comunicação e Sistemas

Fone: (48) 3028.5141 / 8426.3629
Skype: paulo.iw

-------------------------------------------------------------------------------------------
Aviso de confidencialidade:
Esta mensagem da Empresa IW - Inteligência Web Comunicação e Sistemas, empresa privada, é enviada exclusivamente a seu destinatário e pode conter informações confidenciais, protegidas por sigilo profissional. Sua utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, esclarecendo o equívoco.

DS interativa | PHP Grupos

unread,
Nov 20, 2013, 11:00:19 AM11/20/13
to kohan...@googlegroups.com
foi mal....aqui no codigo está assim, foi so no exemplo que comi bola...rs...
vou jogar no pastebin e ja mando o link

DS interativa | PHP Grupos

unread,
Nov 20, 2013, 12:48:35 PM11/20/13
to kohan...@googlegroups.com
então, neste ponto, dentro do ORM principal

assim:
usuario extends model_app{}

public function ordem(){

            $iOrdem = 1; // sempre

            if (isset($this->_table_columns['ordem']))
                $this->select('ordem')->order_by('ordem','DESC')->limit(1);
                // nao soube implementar usando o MAX tbm...
}

sabendo que o model_app extends ORM{}

gostaria de criar um metodo personalizado que obtem a maior ORDEM do registro
se não tem nada, será 1 caso contrario trará o maior

não to sabendo implementar essa querie !!!


Em 20/11/2013 13:58, Paulo Duarte escreveu:

DS interativa | PHP Grupos

unread,
Nov 20, 2013, 12:56:04 PM11/20/13
to kohan...@googlegroups.com
resolvido

recordar é viver

faltou acrescentar o seguinte

$a = $this->select('ordem')->order_by('ordem','DESC')->limit(1)->find_all();

                echo "<pre>";
                print_r($a->count());
                echo "</pre>";
                exit(0);

ou

$a = $this->select('ordem')->order_by('ordem','DESC')->limit(1)->find();
                echo "<pre>";
                print_r($a);
                echo "</pre>";
                exit(0);

fora isso estava tendo somente o objeto em si e por isso o as_aray()  não retornava nada !! (acho que é isso)

valeu



Em 20/11/2013 13:58, Paulo Duarte escreveu:

DS interativa | PHP Grupos

unread,
Nov 20, 2013, 1:05:04 PM11/20/13
to kohan...@googlegroups.com
resolvi nada....rs

ao obter a ordem ele carrega o registro de ordem maior e atualiza o mesmo ao inves de retornar apenas o campo ordem...

xiiiiii

sendo que isso é um novo cadastro sem a primary key para realizar o update usando o save()

e agora ??

DS interativa | PHP Grupos

unread,
Nov 20, 2013, 1:24:58 PM11/20/13
to kohan...@googlegroups.com
bom, agora resolvi...
pesquisando no forum do kohana, vi que o melhor caminho seria o DB:: query builder mesmo...

implementei assim, ja que usando o this, incide diretamente no registro e realizando uma nova query acabei trocando o registro atual pelo encontrado atualizando de forma errada..

caso alguem ai tiver uma situação diferenciada, por favor, ajuda eu...rs


valeu

Em 20/11/2013 13:58, Paulo Duarte escreveu:
Reply all
Reply to author
Forward
0 new messages