2015-01-23 5 views
0

Я пытаюсь опубликовать форму в yii, но не имею никакой идеи относительно проверки, я просматриваю документацию yii, но не получаю ее. не можем ли мы сделать валидацию без объекта формы yii? означает, что я использую обычный HTML для формы yii.Проверка формы в yii

+0

Таким образом, вы не используете конструктор Yii Form или элементы yii form и все еще хотите использовать проверку Yii? Будьте более конкретными, пока вы просите о помощи. – TNC

+0

Да, фактически я не использую yii form builder. поэтому вопрос заключается в том, что мы не можем использовать yii-проверку формы без формообразователя – Snehal

+0

Конечно, мы можем. Можете ли вы пройти через actionContact() в качестве примера. – TNC

ответ

0

Валидация встроена в 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; 
     } 
     // : 
    } 

} 
0

В действии, вам нужно добавить

$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 
); 
} 

Я думаю, это будут полезны для вас.

+0

спасибо, но в этом мы должны создать контроллер формы, например

Но могу ли я сделать то же самое с простой формой HTML? – Snehal

+1

Да, вы можете добавить простой html. Например:

+0

благодаря его работе он отображает ошибку с , если ($ модели-> 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