2016-07-23 9 views
0

私はクリーンyii2-advancedテンプレートがインストールされています。私はidtestフィールドを持つDBのテーブルを作成しました。私のModelでは、私はruleを書いた:Yii2クライアントの検証が機能しません

public function rules() 
{ 
    return [ 
     [['test'], 'required'], 
    ]; 
} 

また、私は私のformのためのユニークなidを指定しました。 しかし、検証は機能しません。 smthをcontrolfocus outに入力した後、consoleUncaught TypeError: Cannot read property 'required' of undefinedにエラーがあります。これの理由は何でしょうか?

EDIT:

モデル:

<?php 
namespace backend\models; 
use Yii; 
use yii\base\Model; 
class ContactForm extends Model 
{ 
    public $name; 
    public function rules() 
    { 
     return [ 
      [['name'], 'required'], 
     ]; 
    } 
} 

ビュー:

<?php 
use yii\helpers\Html; 
use yii\bootstrap\ActiveForm; 
?> 
<div class="site-contact"> 
    <div class="row"> 
     <div class="col-lg-6"> 
      <?php $form = ActiveForm::begin(['id' => 'contact-form']); ?> 
       <?= $form->field($model, 'name')->textInput() ?> 
       <?= Html::submitButton('Submit', ['class' => 'btn btn-success']) ?> 
      <?php ActiveForm::end(); ?> 
     </div> 
    </div> 
</div> 

コントローラのアクション:

use backend\models\ContactForm; 
public function actionContact() 
{ 
    $model = new ContactForm(); 
    if ($model->load(Yii::$app->request->post())) { 
     return $this->refresh(); 
    } else { 
     return $this->render('contact', [ 
      'model' => $model, 
     ]); 
    } 
} 

答えて

0

あなたはを使用します、あなたは最初の属性(または属性の配列)を入力する必要があり、その後、ルールのタイプ(それは仕方によっても、カスタム関数とすることができる):

[['name'], 'required'] // setting the attribute "name" as required 

あなたが検証およびルールの詳細を読むことができhere

+0

申し訳ありませんが、私は誤植をしました。列名は 'test'です。もちろん私はあなたが書いた方法でそれをやった。そしてそれは記述されたエラーを投げます。 – Dmytro

+0

それでも問題が解決しない場合は、モデル、コントローラーとフォームの動作で質問を更新できますか?ここではエラーを再現できませんでした。ところで、あなたはMYSQLまたはMSSQLを使用していますか? – Clyff

+0

投稿を更新しました – Dmytro

0

フォームフィールドに一意のIDを適用した場合は、削除してください.Yii2はそれ自身でIDを生成し、それに応じて検証メッセージを適用します。

+0

動作しません... – Dmytro

関連する問題