Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="Anonymous"]Пытаюсь реализовать валидацию введенных пользователем данных. В контроллере имеем: var $validate = array ( 'city_id' => array ( 'rule' => 'numeric', 'on' => 'create', 'required' => true, 'allowEmpty' => false, 'message' => 'Invalid e-mail' ), 'first_name' => array ( 'rule' => 'alphaNumeric', 'required' => true, 'on' => 'create', 'allowEmpty' => false, 'message' => 'Invalid First_Name' ), 'last_name' => array ( 'rule' => array ( 'maxLength', 3 ), 'required' => true, 'on' => 'create', 'allowEmpty' => false, 'message' => 'Invalid Last_Name' ), 'email' => array ( 'rule' => array ( 'email', true ), 'on' => 'create', 'allowEmpty' => false, 'required' => true, 'message' => 'Invalid e-mail' ), 'photo' => array ( 'rule' => array ( 'file', true ), 'on' => 'create', 'required' => true, 'message' => 'Invalid e-mail' ) ); … и function add() { if ( ! empty ( $this->data ) ) { // выгрузку фото пока пропустим $this->data['User']['photo'] = ""; if ( $this->User->create ( $this->data ) ) && ( $this->User->validates ( $this->data ) ) { if ( $this->User->save ( $this->data ) ) { $this->flash ( "Успешно сохранено", "add" ); } else { $this->flash ( "Ошибка сохранения", "add" ); } } else { $this->set ( "error", "Error of validate!" ); } } else { $this->set ( "Countries", $this->Country->find ( "list" ) ); $this->set ( "Cities", $this->City->find ( "list" ) ); } } и соотв. вид add.ctp: <?php if ( ! empty ( $error ) ) echo $error; echo "<center><h4>Новый пользователь</h4>"; echo $form->create ( "User", array ( "action" => "add", "enctype" => "multipart/form-data" ) ); echo "Имя: " . $form->input ( "User.first_name", array ( "label" => false ) ); echo "Фамилия: " . $form->input ( "User.last_name", array ( "label" => false ) ); echo "E-mail: " . $form->input ( "User.email", array ( "label" => false ) ); echo $form->select ( "Country.id", $Countries, null, null, array ( "default" => " :: ALL :: " ) ) . "<br>"; echo $form->select ( "User.city_id", $Cities, null, null, array ( "default" => " :: ALL :: " ) ) . "<br>"; echo "Фото: " . $form->file ( "User.photo", array ( "label" => false ) ); echo $form->end ( "Добавить" ); echo $ajax->observeField ( "CountryId", array ( "url" => "/cities/update_cities/", "update" => "UserCityId", "frequency" => 0.5 )); } ?> Что бы не вводил в поля, результат один – валидация проходит успешно.[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
uran26
Добавлено: 23 Июн 2009 16:55:14
Заголовок сообщения:
нашел свою ошибку - var $validate засунул в контроллер, а не в модель. все заработало.
uran26
Добавлено: 23 Июн 2009 16:31:46
Заголовок сообщения:
ни у кого такой ситуации никогда не возникало?
Гость
Добавлено: 22 Июн 2009 17:43:00
Заголовок сообщения: Валидация всегда проходит успешно
Пытаюсь реализовать валидацию введенных пользователем данных.
В контроллере имеем:
var $validate = array (
'city_id' => array (
'rule' => 'numeric',
'on' => 'create',
'required' => true,
'allowEmpty' => false,
'message' => 'Invalid e-mail'
),
'first_name' => array (
'rule' => 'alphaNumeric',
'required' => true,
'on' => 'create',
'allowEmpty' => false,
'message' => 'Invalid First_Name'
),
'last_name' => array (
'rule' => array ( 'maxLength', 3 ),
'required' => true,
'on' => 'create',
'allowEmpty' => false,
'message' => 'Invalid Last_Name'
),
'email' => array (
'rule' => array ( 'email', true ),
'on' => 'create',
'allowEmpty' => false,
'required' => true,
'message' => 'Invalid e-mail'
),
'photo' => array (
'rule' => array ( 'file', true ),
'on' => 'create',
'required' => true,
'message' => 'Invalid e-mail'
)
);
…
и
function add()
{
if ( ! empty ( $this->data ) ) {
// выгрузку фото пока пропустим
$this->data['User']['photo'] = "";
if ( $this->User->create ( $this->data ) ) && ( $this->User->validates ( $this->data ) ) {
if ( $this->User->save ( $this->data ) ) {
$this->flash ( "Успешно сохранено", "add" );
} else {
$this->flash ( "Ошибка сохранения", "add" );
}
} else {
$this->set ( "error", "Error of validate!" );
}
} else {
$this->set ( "Countries", $this->Country->find ( "list" ) );
$this->set ( "Cities", $this->City->find ( "list" ) );
}
}
и соотв. вид add.ctp:
<?php
if ( ! empty ( $error ) ) echo $error;
echo "<center><h4>Новый пользователь</h4>";
echo $form->create ( "User", array ( "action" => "add", "enctype" => "multipart/form-data" ) );
echo "Имя: " . $form->input ( "User.first_name", array ( "label" => false ) );
echo "Фамилия: " . $form->input ( "User.last_name", array ( "label" => false ) );
echo "E-mail: " . $form->input ( "User.email", array ( "label" => false ) );
echo $form->select ( "Country.id", $Countries, null, null, array ( "default" => " :: ALL :: " ) ) . "<br>";
echo $form->select ( "User.city_id", $Cities, null, null, array ( "default" => " :: ALL :: " ) ) . "<br>";
echo "Фото: " . $form->file ( "User.photo", array ( "label" => false ) );
echo $form->end ( "Добавить" );
echo $ajax->observeField ( "CountryId", array ( "url" => "/cities/update_cities/", "update" => "UserCityId", "frequency" => 0.5 ));
}
?>
Что бы не вводил в поля, результат один – валидация проходит успешно.
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».