Я пытаюсь опубликовать форму в yii, но не имею никакой идеи относительно проверки, я просматриваю документацию yii, но не получаю ее. не можем ли мы сделать валидацию без объекта формы yii? означает, что я использую обычный HTML для формы yii.Проверка формы в yii
ответ
Валидация встроена в Yii в Модели, будь то модели моделей или модели CActiveRecord.
Чтобы выполнить проверку, поместите правила проверки в свою модель. В приведенном ниже примере я использую модель activerecord.
class Customer extends CActiveRecord {
// :
public function rules(){
return array(
array('name, surname, email', 'required'),
array('age, email', 'length','min'=>18)
);
}
Теперь вы можете проверить ЛЮБОЙ форму, независимо от того, используете ли вы формы Yii или простые формы HTML.
Чтобы принудительно выполнить проверку, ваш контроллер должен заполнить значения модели, а затем вызвать модель для проверки данных по правилам, которые вы определили ранее.
class CustomerController extends CController {
// :
$customerModel = new Customer;
// Set fields using this format ...
$customerModel->attributes['name'] = $_FORM['user'];
// ...or this ...
$customerModel->age = $_FORM['age'];
// ...of this
$customerModel->setEmail($_FORM['email'];
// Now validate the model
if ($customerModel->validate) {
return true;
}
else {
return false;
}
// :
}
}
В действии, вам нужно добавить
$this->performAjaxValidation($model);
в _form, добавьте
'enableAjaxValidation'=>true,
и в модели, вам необходимо установить правила,
public function rules(){
return array(
// array('username, email', 'required'), // Remove these fields from required!!
array('email', 'email'),
array('username, email', 'my_equired'), // do it below any validation of username and email field
);
}
Я думаю, это будут полезны для вас.
спасибо, но в этом мы должны создать контроллер формы, например
Да, вы можете добавить простой html. Например: –
благодаря его работе он отображает ошибку с , если ($ модели-> Validate()) \t \t \t { \t \t \t \t Эхо 'проверка завершена'; \t \t \t} \t \t \t еще \t \t \t { \t \t \t \t print_r ($ модели-> getErrors()); \t \t \t \t \t \t} как я могу отобразить эту ошибку на виду? – Snehal
Таким образом, вы не используете конструктор Yii Form или элементы yii form и все еще хотите использовать проверку Yii? Будьте более конкретными, пока вы просите о помощи. – TNC
Да, фактически я не использую yii form builder. поэтому вопрос заключается в том, что мы не можем использовать yii-проверку формы без формообразователя – Snehal
Конечно, мы можем. Можете ли вы пройти через actionContact() в качестве примера. – TNC