Validação não funciona CAKEPHP

23/07/2015

0

PHP

Olá, estou estudando cakePHP e estou enrolado numa questão: VALIDAÇÃO!
Segui os procedimentos no book do CAKEPHP, mas quando gravo alguma coisa num form em branco, ele grava no banco um registro em branco, ou seja, a validação não está funcionando. Tentei seguir as convenções do cakePHP. Segue abaixo os arquivos e seus códigos.

Model
Nome do arquivo: Aluno.php
<?php
class Aluno extends AppModel {
    public $name = 'Alunos';
    public $validate = array(
        'nome' => array(
            'rule' => 'notEmpty',
            'message' => 'Digite o nome do aluno'
        )
    );
}
?>

Controller
Nome do arquivo: AlunosController.php (abaixo apenas o código para gravar/adicionar novo aluno)
public function adicionar() {
        //TITULO DA PAGINA
        $this->set('title', 'Adicionar aluno');
        $aluno = $this->Alunos->newEntity();
        if ($this->request->is('post')) {
            $aluno = $this->Alunos->patchEntity($aluno, $this->request->data);
            if ($this->Alunos->save($aluno)) {
                $this->Flash->success(__('Dados gravados com sucesso.'));
                return $this->redirect(['action' => 'index']);
            } else {
                $this->Flash->error(__('Erro ao gravar dados.'));
                return $this->redirect(['action' => 'adicionar']);
            }
        }
        $this->set('aluno', $aluno);
    }

View
Nome do arquivo: adicionar.ctp
<?php

if (isset($title)) {
    $this->assign('title', $title); 
}
?>
<h1>Gravar Aluno</h1>
<div class="input-group">
    <div class='col-xs-6'>
<?php
    echo $this->Form->create('Post'),
    $this->Form->input('nome', array('class'=>'form-control')),
    $this->Form->input('endereco', array('class'=>'form-control')),
    $this->Form->input('bairro', array('class'=>'form-control')),
    $this->Form->input('cidade', array('class'=>'form-control')),
    $this->Form->input('uf', array('class'=>'form-control')),
    $this->Form->input('cep', array('class'=>'form-control'))
            ?>
    </div>

    <div class='col-xs-6'>
<?php
    echo $this->Form->input('data_nasc', array('class'=>'form-control')),
    $this->Form->input('telefone', array('class'=>'form-control')),
    $this->Form->input('celular', array('class'=>'form-control')),
    $this->Form->input('email', array('class'=>'form-control')),
    $this->Form->input('senha', array('class'=>'form-control'))
            ?>
    </div>

    <div class='col-xs-12' style="padding: 20px 0 20px 10px">
<?php
    echo $this->Form->button('Gravar aluno', 
                    array('class'=>'btn btn-primary')); 
    $this->Form->end();
    ?>
    </div>

</div>
Valdemir Santos

Valdemir Santos

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar