Отображать сообщения об ошибках, содержащие переменные, при проверке форм в CakePHP - PullRequest
2 голосов
/ 29 августа 2010

В моей модели есть переменная $ validate, которая содержит:

var $validate=array(

"username" => array ( "usernameValid" => массив ( "rule" => "__alphaNumericDashUnderscore", "message" => "Неверное имя пользователя!" ) ) );

Вопрос заключается в следующем: как вернуть сообщение об ошибке из метода проверки __alphaNumericDashUnderscore() и добавить его в ключ message в массиве правил?

Например, этот метод, __alphaNumericDashUnderscore(), возвращает истину или ложь, в зависимости от того, что пользовательский ввод содержит запрещенные символы. Но что если в этом методе я хотел бы вернуть, какие конкретно запрещенные символы набрал пользователь, и отобразить их вместе с messages? Что-то вроде "The username you entered is not valid! You have used the following forbidden characters: $chars".

У вас есть идеи, как этого добиться? Заранее спасибо.

1 Ответ

1 голос
/ 30 августа 2010

По умолчанию метод проверки CakePHP возвращает только True или False.Но это все еще PHP.Ты можешь делать что угодно.Вот мой хак:

<?php
class User extends Model {
    var $name = 'User';
    var $invalidChars = "";
    var $validate=array("username" => array( "usernameValid" => array( 
        "rule" => "__alphaNumericDashUnderscore", 
        "message" => "The username you entered is not valid! You have used the following forbidden characters: $this->invalidChars" 
    )));

    function alphaNumericDashUnderscore($check) {
        // Process the value
        // Assign invalid char, $this->invalidChars = $chars
        // Return true or false
    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...