[CodeIgniter] Chamar model dentro de model
Cleyverson Costa
cleyversoncosta em gmail.com
Quinta Dezembro 6 11:53:51 BRST 2007
O que por exemplo vcs validam na model??
Nao estou exergando nada de extra que me faça validar algo na model.
Abraços
Em 06/12/07, Cleyverson Costa <cleyversoncosta em gmail.com> escreveu:
>
> Hmm
>
> Ummm eu faço a validação no controller...acho q fica mais enxuto a model.
>
> Em 06/12/07, Newton Wagner < newtonweb em gmail.com> escreveu:
> >
> > Eu discordo de um ponto só.
> >
> > Pra mim, quem valida se o campo é obrigatório ou não, se o e-mail é
> > valido ou não, é o Modelo. Isso é uma regra de negócio.
> >
> > É meio polêmico e conceitual, mas é por aí. :).
> >
> >
> > --
> > Newton Wagner
> >
> > skype: newtonwagner
> > msn/gtalk: newtonweb em gmail.com
> >
> > http://www.newtonwagner.net/blog
> > - http://www.owshit.com.br/
> >
> >
> > Em 06/12/07, Daniel Costa< danielcosta em gmail.com> escreveu:
> > > Regra de negócio muito básica pra ajudar a galera: autenticação de
> > usuário!
> > > =) (eu falei que era básica)
> > >
> > > Digamos que o login em um sistema web seja feito com email e senha - a
> > senha
> > > deve ser sempre um hash do conteúdo real .
> > > Etapas:
> > >
> > > View: O usuário preenche login e senha e envia o form
> > > Controller: Recebe os dados do post, trata ou valida esses dados (se é
> > > obrigatório/e-mail válido/etc) e encaminha para o Model verificar a
> > > autenticidade das informações.
> > > Model: Faz o hash da senha preenchida na view; seleciona e-mail e
> > senha (que
> > > já é armazenada como hash); se os hashs são iguais para o e-mail
> > preenchido
> > > na view, o model retorna true; senão, retorna false para o controller.
> >
> > > Controller: Se o model retornou true, encaminha para a área restrita
> > de um
> > > sistema (pode carregar dados na seção ou ainda fazer outras tarefas
> > > internas); se o model retornou false, encaminha para uma view com
> > mensagem
> > > de erro amigável. Como vocês puderam perceber, o controller serve
> > apenas de
> > > meio de campo mesmo, e no model é que são implementados todos os
> > requisitos.
> > > Não quer dizer que o controller não possa ter os if, elses que o
> > colega
> > > falou anteriormente, mas vai ter somente para controles do fluxo de
> > > execução, e não para execução de regra de negócio, que por boas
> > práticas,
> > > devem sim ficar no model.
> > >
> > > Flw pessoal.
> > >
> > >
> > >
> > > On Dec 6, 2007 10:14 AM, Luciano Soares <lussterl em gmail.com> wrote:
> > > > Essa assunto sobre regras de negócio e MVC já foi discutido pelo
> > pessoal
> > > do grupo da lista php que participo há um tempo.
> > > >
> > > > Estou procurando aqui o link pra thread.
> > > >
> > > > Mas achei ese conteúdo aqui.
> > > >
> > > >
> > > > "A arquitetura MVC - (Modelo Visualização Controle) fornece uma
> > maneira de
> > > dividir a funcionalidade envolvida na manutenção e apresentação dos
> > dados de
> > > uma aplicação. A arquitetura MVC não é nova e foi originalmente
> > desenvolvida
> > > para mapear as tarefas tradicionais de entrada , processamento e saída
> > para
> > > o modelo de interação com o usuário. Usando o padrão MVC fica fácil
> > mapear
> > > esses conceitos no domínio de aplicações Web multicamadas.
> > > >
> > > > Na arquitetura MVC o modelo representa os dados da aplicação e as
> > regras
> > > do negócio que governam o acesso e a modificação dos dados. O modelo
> > mantém
> > > o estado persistente do negócio e fornece ao controlador a capacidade
> > de
> > > acessar as funcionalidades da aplicação encapsuladas pelo próprio
> > modelo.
> > > >
> > > > Um componente de visualização renderiza o conteúdo de uma parte
> > particular
> > > do modelo e encaminha para o controlador as ações do usuário; acessa
> > também
> > > os dados do modelo via controlador e define como esses dados devem ser
> >
> > > apresentados.
> > > >
> > > > Um controlador define o comportamento da aplicação , é ele que
> > interpreta
> > > as ações do usuário e as mapeia para chamadas do modelo. Em um cliente
> > de
> > > aplicações Web essas ações do usuário poderiam ser cliques de botões
> > ou
> > > seleções de menus. As ações realizadas pelo modelo incluem ativar
> > processos
> > > de negócio ou alterar o estado do modelo. Com base na ação do usuário
> > e no
> > > resultado do processamento do modelo , o controlador seleciona uma
> > > visualização a ser exibida como parte da resposta a solicitação do
> > usuário.
> > > Há normalmente um controlador para cada conjunto de funcionalidades
> > > relacionadas." http://www.macoratti.net/vbn_mvc.htm
> > > >
> > > > Então, o modelo seria responsável por representar e persistir os
> > dados
> > > além das regas de negócio.
> > > >
> > > > A visão renderiza o conteúdo e encaminha as ações para o
> > contralador.
> > > >
> > > > O controlador é o responsável por toda a interconexão das acções com
> > os
> > > dados.
> > > >
> > > >
> > > > Em 06/12/07, Gilson <gilson.wolfart em gmail.com > escreveu:
> > > >
> > > >
> > > >
> > > > > Luciano, explica direito esse negõcio de regras de negócio no
> > modelo,
> > > > > porquê eu comecei com o CodeIgniter há pouquíssimo tempo (na
> > verdade
> > > > > estou no primeiro projeto com ele) e, se for assim, estou fazendo
> > tudo
> > > > > errado.
> > > > >
> > > > > Abraços,
> > > > > Gilson
> > > > >
> > > > > Em 06/12/07, Luciano Soares< lussterl em gmail.com> escreveu:
> > > > > > Osdeni, numa arquitetura MVC as regras e negócio ficam no
> > modelo e
> > > não no
> > > > > > controlador.
> > > > > >
> > > > > >
> > > > > > Em 05/12/07, Osdeni José Sadzinski < osdeni em gmail.com> escreveu:
> > > > > > > Como o Marco falou, pode ser um helper também, depende da
> > > complexidade
> > > > > > dessa classe Data.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On Dec 5, 2007 2:02 PM, Marco Telles <
> > contato em pierdeipanema.com.br
> > > >
> > > > > > wrote:
> > > > > > >
> > > > > > > > Uma vez rolou essa questão aqui, e a julgar pelo conteúdo do
> > core
> > > do ci,
> > > > > > > > onde todas as funções ficam no helpers e na libray as
> > classes,
> > > você
> > > > > > > > poderia colocar suas funções no helpers de sua aplicação.
> > > > > > > > Agora isso é uma questão pessoal. Se você preferir pode até
> > > colocar como
> > > > > > > > no método tradicional, como uma pasta include
> > (desnecessária, mas
> > > é uma
> > > > > > > > opção).
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Muita sorte para nós!
> > > > > > > >
> > > > > > > > Marco Telles
> > > > > > > >
> > > > > > > > #############
> > > > > > > > # Pier de Ipanema (
> > > http://www.pierdeipanema.com.br/ )
> > > > > > > >
> > > > > > > >
> > > > > > > > Cleyverson Costa escreveu:
> > > > > > > >
> > > > > > > > > Sim Marco,
> > > > > > > > >
> > > > > > > > > Mas se eu nao coloco no model eu coloco onde?? Como uma
> > > library??
> > > > > > > > >
> > > > > > > > > Em 05/12/07, *Marco Telles* < contato em pierdeipanema.com.br
> > > > > > > > > <mailto: contato em pierdeipanema.com.br>> escreveu:
> > > > > > > >
> > > > > > > > >
> > > > > > > > > Se é uma função 'genérica', não seria o caso dela
> > estar fora
> > > do
> > > > > > > > > model e
> > > > > > > > > disponível para qualquer model ou controller ?
> > > > > > > > > Assim, você pelo controler, inclui sua função, faz o
> > acesso
> > > ao
> > > > > > model
> > > > > > > > > 'data', recebe como retorno a 'data trabalhada', chama
> > o
> > > model
> > > > > > pessoa
> > > > > > > > > enviando a 'data trabalhada' como parâmetro. Pelo que
> > > entendi
> > > > > > > > > seria isso
> > > > > > > > > uma forma ?
> > > > > > > > >
> > > > > > > > > Abs
> > > > > > > > >
> > > > > > > > > Muita sorte para nós!
> > > > > > > > >
> > > > > > > > > Marco Telles
> > > > > > > > >
> > > > > > > > > #############
> > > > > > > > > # Pier de Ipanema (
> > > > > > http://www.pierdeipanema.com.br/ )
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Cleyverson Costa escreveu:
> > > > > > > > > > Tipo.
> > > > > > > > > >
> > > > > > > > > > Eu criei o model pessoa e o model data por exemplo.
> > > > > > > > > >
> > > > > > > > > > Dentro do model pessoa eu tenho uma funçao que faz
> > uma
> > > chamada
> > > > > > no
> > > > > > > > > > banco a uma data e trabalha trabalha com ela. Eu
> > refazer o
> > > > > > codigo
> > > > > > > > > > dentro de pessoa é besteira, entao eu so quero estar
> > > dentro de
> > > > > > > > > pessoa
> > > > > > > > > > e chamar a funçao que está dentro do model data.
> > > > > > > > > >
> > > > > > > > > > É errado fazer isso?
> > > > > > > > > >
> > > > > > > > > > Abraços
> > > > > > > > > >
> > > > > > > > > > Em 05/12/07, *Osdeni José Sadzinski* <
> > osdeni em gmail.com
> > > > > > > > > <mailto: osdeni em gmail.com>
> > > > > > > > > > <mailto:osdeni em gmail.com <mailto: osdeni em gmail.com
> > >>>
> > > escreveu:
> > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Mas porque você ques chamar um model dentro de
> > outro
> > > model?
> > > > > > > > > >
> > > > > > > > > > On Dec 5, 2007 3:34 AM, Cleyverson Costa
> > > > > > > > > > < cleyversoncosta em gmail.com
> > > > > > > > > <mailto: cleyversoncosta em gmail.com >
> > > > > > > > > <mailto: cleyversoncosta em gmail.com
> > > > > > > >
> > > > > > > > > <mailto: cleyversoncosta em gmail.com >>> wrote:
> > > > > > > > > >
> > > > > > > > > > Pessoal,
> > > > > > > > > >
> > > > > > > > > > Eu estou dentro de uma função em um model X
> > e
> > > quero
> > > > > > > > > chamar uma
> > > > > > > > > > função do model Y.
> > > > > > > > > >
> > > > > > > > > > Existe alguma restrição do CI qto a isso??
> > > > > > > > > >
> > > > > > > > > > Abraços
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Cleyverson Pereira Costa
> > > > > > > > > > Bacharel em Ciência da Computação FAESA
> > > > > > > > > > Residente em Engenharia de Testes CIn-UFPE
> > > > > > > > > >
> > > > > >
> > > ----------------------------------------------------------
> > > > > > > > > > Tel.: (81) 8785-1289
> > > > > > > > > >
> > > > > > _______________________________________________
> > > > > > > > > > Lista mailing list
> > > > > > > > > > Lista em codeigniter.com.br
> > > > > > > > > <mailto: Lista em codeigniter.com.br> <mailto:
> > > > > > Lista em codeigniter.com.br
> > > > > > > >
> > > > > > > > > <mailto: Lista em codeigniter.com.br>>
> > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > > <
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Atenciosamente,
> > > > > > > > > >
> > > > > > > > > > Osdeni José Sadzinski
> > > > > > > > > > E-mail: osdeni em gmail.com <mailto:
> > osdeni em gmail.com>
> > > <mailto:
> > > > > > > >
> > > > > > > > > osdeni em gmail.com <mailto:osdeni em gmail.com >>
> > > > > > > > > > MSN: osdeni em hotmail.com <mailto:
> > osdeni em hotmail.com >
> > > > > > > > > <mailto: osdeni em hotmail.com <mailto:
> > osdeni em hotmail.com>>
> > > > > > > >
> > > > > > > > > >
> > > > > > _______________________________________________
> > > > > > > > > > Lista mailing list
> > > > > > > > > > Lista em codeigniter.com.br <mailto:
> > > Lista em codeigniter.com.br >
> > > > > > > > > <mailto: Lista em codeigniter.com.br <mailto:
> > > > > > Lista em codeigniter.com.br>>
> > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Cleyverson Pereira Costa
> > > > > > > > > > Bacharel em Ciência da Computação FAESA
> > > > > > > > > > Residente em Engenharia de Testes CIn-UFPE
> > > > > > > > > >
> > > > > >
> > > ----------------------------------------------------------
> > > > > > > > > > Tel.: (81) 8785-1289
> > > > > > > > > >
> > > > > > > > >
> > > > > >
> > >
> > ------------------------------------------------------------------------
> > > > > > > > > >
> > > > > > > > > >
> > > _______________________________________________
> > > > > > > > > > Lista mailing list
> > > > > > > >
> > > > > > > > > > Lista em codeigniter.com.br <mailto:
> > Lista em codeigniter.com.br
> > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > >
> > > <http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > _______________________________________________
> > > > > > > > > Lista mailing list
> > > > > > > > > Lista em codeigniter.com.br <mailto:
> > Lista em codeigniter.com.br>
> > > > > > > > >
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Cleyverson Pereira Costa
> > > > > > > > > Bacharel em Ciência da Computação FAESA
> > > > > > > > > Residente em Engenharia de Testes CIn-UFPE
> > > > > > > > >
> > > > > >
> > > ----------------------------------------------------------
> > > > > > > > > Tel.: (81) 8785-1289
> > > > > > > > >
> > > > > >
> > >
> > ------------------------------------------------------------------------
> > > > > > > > >
> > > > > > > > > _______________________________________________
> > > > > > > > > Lista mailing list
> > > > > > > > > Lista em codeigniter.com.br
> > > > > > > > >
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > >
> > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > > > Lista mailing list
> > > > > > > > Lista em codeigniter.com.br
> > > > > > > >
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Atenciosamente,
> > > > > > >
> > > > > > > Osdeni José Sadzinski
> > > > > > > E-mail: osdeni em gmail.com
> > > > > > > MSN: osdeni em hotmail.com
> > > > > > > _______________________________________________
> > > > > > > Lista mailing list
> > > > > > > Lista em codeigniter.com.br
> > > > > > >
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > Lista mailing list
> > > > > > Lista em codeigniter.com.br
> > > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > >
> > > > > >
> > > > >
> > > > > _______________________________________________
> > > > > Lista mailing list
> > > > > Lista em codeigniter.com.br
> > > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Lista mailing list
> > > > Lista em codeigniter.com.br
> > > >
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Daniel Costa
> > > ::. http://danielcosta.info
> > > _______________________________________________
> > > Lista mailing list
> > > Lista em codeigniter.com.br
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > >
> > >
> >
> > _______________________________________________
> > Lista mailing list
> > Lista em codeigniter.com.br
> > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> >
>
>
>
> --
> Cleyverson Pereira Costa
> Bacharel em Ciência da Computação FAESA
> Residente em Engenharia de Testes CIn-UFPE
> ----------------------------------------------------------
> Tel.: (81) 8785-1289
>
--
Cleyverson Pereira Costa
Bacharel em Ciência da Computação FAESA
Residente em Engenharia de Testes CIn-UFPE
----------------------------------------------------------
Tel.: (81) 8785-1289
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://codeigniter.com.br/pipermail/lista_codeigniter.com.br/attachments/20071206/49462e48/attachment-0001.html
Mais detalhes sobre a lista de discussão Lista