Porque você não está usando Model :)

Você tem que criar um Model. No seu código você usou o Controller com
nome Contact (passe ele para Contacts - no plural) e faça o model
Contact. Não esqueça de fazê-lo extendido de AppModel e colocar o var
$useTable = false;

Acho que isso já vai resolver seu problema.


Juan Basso

On 24 jan, 10:08, DrWinux <[EMAIL PROTECTED]> wrote:
> pessoal oww eu de novo..
> fiz da seguinte maneira
>
> <?php
> class ContactController extends AppController {
>
>         var $name = 'Contact';
>         var $uses = array();
>         var $helpers = array('Html', 'Form', 'Format', 'Layout');
>         var $components = array('Email');
>
>         function index()
>         {
>
>                 if ( empty($this->data) ) {
>
>                      pr($this->data);
>
>                 }else{
>
>                         //pr($this->data);
>
>                          $this->Contact->data = $this->data;
>
>                         if ($this->Contact->invalidFields($this->data))
>                         {
>                                 echo 'envio';
>
>                         $this->Email->to = '[EMAIL PROTECTED]';
>                         $this->Email->subject = 'Cake test template email';
>                         $this->Email->replyTo = '[EMAIL PROTECTED]';
>                         $this->Email->from = 'Cake Test Account
> <[EMAIL PROTECTED]>';
>                         $this->Email->template = 'test';
>
>                         //Do not pass any args to send()
>                         if ( $this->Email->send() ) {
>                             $this->Session->setFlash('Template email sent');
>                         } else {
>                             $this->Session->setFlash('Template email not 
> sent');
>                         }
>                         $this->redirect('/contato');
>
>                         }else{
>
>                                 $this->redirect('/contato/erro');
>
>                         }
>                 pr($this->data);
>                 }
>
>         }}
>
> ?>
>
> porem esta gerando esse erro
>
> Fatal error: Call to undefined method stdClass::invalidFields() in F:
> \Desenvolvimento\htdocs\cake\app\controllers\contact_controller.php on
> line 23
>
> Porque sera que não esta reconhecendo a função invalidFields?
>
> Desde já agradeço pessoal..
> AT+
>
> On 23 Jan, 20:39, Juan Basso <[EMAIL PROTECTED]> wrote:
>
>
>
> > Eber,
>
> > Só lembrando que a versão 1.2.6311 entrou em desuso a parte de passar
> > os dados por parâmetro. O modo de fazer tem que usar o $this->Modelo->data 
> > = $this->data e depois utilizar o validates() ou o
>
> > invalidFields() que são basicamente a mesma coisa.
> > A diferença é que validates retorna um valor boolean (true se for
> > valido, false não...) e a invalidFields retorna um array com os erros.
> > Aí vai do que você quer fazer...
>
> > Mas eu havia esquecido do $useTable = false.
>
> > Juan Basso
>
> > On 23 jan, 20:14, DrWinux <[EMAIL PROTECTED]> wrote:
>
> > > valeu gente, vcs sauvaram minha vida.
> > > heheh
>
> > > at+
>
> > > On 23 jan, 19:21, "Eber Freitas Dias" <[EMAIL PROTECTED]> wrote:
>
> > > > Eu acho que a melhor maneira é você fazer como o Sadjow falou e dai no 
> > > > seu
> > > > controller criar uma função mais ou menos assim:
>
> > > > if($this->Model->validates($this->data)) {
> > > >    //executa o envio do email...
>
> > > > }
>
> > > > pronto, se não validar, ele vai retornar à página automaticamente com as
> > > > informações necessárias pra corrigir o formulário... Acho que é isso...
>
> > > > 2008/1/23 Sadjow Medeiros Leão <[EMAIL PROTECTED]>:
>
> > > > > Coloca no Model :  var $useTable = false;
>
> > > > > que resolve..
>
> > > > > Valeu!
>
> > > > > Em 23/01/08, DrWinux <[EMAIL PROTECTED] > escreveu:
>
> > > > > > iai pessoal...
> > > > > > nem resolvi a duvida passada e ja estou encomodando novamente...
> > > > > > pesquisei e so achei exemplos para o cake 1.1
>
> > > > > > aqui vai.
> > > > > > criei o model da seguinte maneira
> > > > > > Versão: 1.2
>
> > > > > > <?php
> > > > > > class Contact extends AppModel {
>
> > > > > >         var $name = 'Contact';
> > > > > >         var $validate = array(
> > > > > >                 'setor' => array('numeric'),
> > > > > >                 'email' =>      array(
> > > > > >                                     'rule' => array('minLength', 
> > > > > > '10'),
> > > > > >                                     'message' => 'Por favor informe 
> > > > > > o
> > > > > > email.'
> > > > > >                                                 ),
> > > > > >                 'message' => array(
> > > > > >                                     'rule' => array('minLength', 
> > > > > > '10'),
> > > > > >                                     'message' => 'Por favor informe 
> > > > > > uma
> > > > > > mensagem.'
> > > > > >                                                 ),
> > > > > >         );
>
> > > > > > }
> > > > > > ?>
>
> > > > > > ai a pergunta que mata..
> > > > > > como uso o model para validar o meu formulario...
> > > > > > como se eu estivesse salvando no banco.
>
> > > > > > mais ao inves disso irei envia-lo por email com o componente 
> > > > > > email...
>
> > > > > > so preciso de um exemplo..
> > > > > > se alguem já passou por isso, e souber de algum site
> > > > > > que tenha esse material, ficarei muito grato.
>
> > > > > > desde já agradeço
> > > > > > AT+
>
> > > > --
> > > > -- Éber Freitas Dias
> > > > --
> > > > -- aCoruja.com - O curso que você quer está aqui!
> > > > -- DesignUp.pro.br - Vagas, freelas e estágios em design e afins!- 
> > > > Ocultar texto entre aspas -
>
> > > - Mostrar texto entre aspas -- Ocultar texto entre aspas -
>
> - Mostrar texto entre aspas -
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
[email protected]
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a