Проверка в моем CakePHP кажется отключенной - PullRequest
0 голосов
/ 02 августа 2009

Я следую учебнику по блогу на веб-сайте CakePHP, но проверка не работает, и я не понимаю почему, потому что я использую код учебника по блогу.

Я все равно буду сообщать прямо из моих файлов ...

MODEL

class Post extends AppModel
{
    var $name = 'Post';

    var $validate = array(
        'title' => array(
            'rule' => 'notEmpty'
        ),
        'body' => array(
            'rule' => 'notEmpty'
        )
    );
}

CONTROLLER

class PostsController extends AppController {
    var $name = 'Posts';

    function index() {
        $this->set('posts', $this->Post->find('all'));
    }

    function view($id) {
        $this->Post->id = $id;
        $this->set('post', $this->Post->read());

    }

    function add() {
        if (!empty($this->data)) {
            if ($this->Post->save($this->data)) {
                $this->Session->setFlash('Your post has been saved.');
                $this->redirect(array('action' => 'index'));
            }
        }
    }
}

ПРОСМОТР (добавить представление)

<h1>Add Post</h1>
<?php
echo $form->create('Post');
echo $form->input('title');
echo $form->input('body', array('rows' => '3'));
echo $form->end('Save Post');
?>

Когда я попадаю на страницу / posts / add и затем нажимаю «Сохранить» без ввода текста, он не перезагружается с ошибкой; он вставляет пустые данные в базу данных, а затем перенаправляет меня с сообщением «Ваше сообщение было сохранено».

Почему не проверяет себя? Я прочитал в документах , что нет необходимости звонить validate(); save() достаточно.

Есть идеи по этому поводу?

1 Ответ

0 голосов
/ 02 августа 2009

Я обнаружил ошибку: я назвал файлы модели заглавными буквами. Итак, у меня было Post.php вместо post.php.

CakePHP не нашел мои модели, и поэтому он использовал свои «сгенерированные» модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...