доступность имени пользователя в фреймворке Yii с использованием ajax - PullRequest
0 голосов
/ 15 февраля 2012

Сценарий: у меня есть форма в моем проекте Yii, которая будет принимать имя пользователя в качестве входного и отправлять пользователю письмо, содержащее ссылку активации, если он его не получил.имя формы - ResendActivationLinkForm, которая расширяет класс CFormModel.теперь во время представления я хочу проверить, существует ли имя пользователя в базе данных или нет, используя AJAX ... Как использовать собственные классы и функции yii для этого?

Ответы [ 3 ]

1 голос
/ 16 февраля 2012

хорошо, спасибо за ответы ... но я получил это более простым способом.я просто добавил массив внутри модели формы ResendActivationLinkForm , изображающий мое правило .. например ..

public function run(){
return array(
.....
.....
 array('username','exist','className'=>'User'),
);
}

, где имя пользователя - это мое имя_ атрибута , существуют - это валидатор псевдоним и className - это Имя класса модели , атрибут которого он должен искать ...

Вы можете посмотреть на http://www.yiiframework.com/wiki/56/ для более подробной информации.:) Счастливого кодирования.:)

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

Я бы расширил модель формы с помощью специального валидатора, такого как массив ('username', 'UsernameExistsValidator'). Этот класс валидатора должен расширять CValidator и реализовывать открытую функцию validateAttribute ($ object, $ attribute), которая может использовать $ this-> addError () для отметки, если имя пользователя недоступно. Смотрите источник для других валидаторов Yii, если вам нужно больше информации о битах там.

Логика из ответа выше будет соответствовать validateAttribute,

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

Если пользовательская модель - это модель с атрибутом имени пользователя, вы можете сделать что-то вроде этого.

if(Usermodel::model()->findByAttributes(
                            array(),
                            'username = :inputtedUsername',
                            array(':inputtedUsername' => $_POST['username'],)))
{ 
//user found    
}else{
//user not found
}

Для получения дополнительной информации о различных методах CActiveRecord посетите веб-сайт

...