случайное сообщение cakePHP при проверке - PullRequest
0 голосов
/ 03 февраля 2012

Я новичок в CakePHP - так что извините, если это звучит наивно ...

По сути, то, что я пытаюсь сделать, генерирует случайное сообщение при проверке. В настоящее время мой код

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

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

                    function randomResponse() {

                        switch($this->myRandomMessageNumber)
                        {
                            case 1:
                                    echo 'Are we playing charades? If so, you know I can\'t see you';
                                    break;
                            case 2: 
                                    echo 'In english?';
                                    break;
                            case 3:
                                    echo '(signs back)';
                                    break;
                            case 4:
                                    echo 'Am I conversing with a mute?';
                                    break;
                        }
                        return true;
                    }
                }

Очевидно, что это выдает ошибку, говоря, что произошла непредвиденная ситуация. Используется учебник блога, который они предоставляют в документации. Итак, как я могу генерировать это случайное сообщение?

1 Ответ

0 голосов
/ 03 февраля 2012

Вы не можете выполнять функции в объявлениях свойств класса в PHP.

В долгосрочной перспективе я бы сказал, посмотрите на пользовательское правило проверки, которое устанавливает сообщение, однако вы также можете легче добиться того же эффекта, еслиназначение сообщения в __construct():

public function __construct() {
    $this->validate['title']['message'] = $this->randomResponse();

    parent::__construct();
}

* Обратите внимание, что побочным эффектом этого является то, что эта логика будет запускаться каждый раз, когда вы используете модель, даже если проверка не происходит, вы можете написать пользовательское правило проверки , если вы хотите быть очень эффективным, но логика здесь настолько проста, что, вероятно, не стоит.

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