رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
عدم نمایش Error ها در فرم
#1
سلام دوستان

چرا این فرم خطاها را نشان نمیدهد؟

<?php
use yii\helpers\Html;
use yii\widgets\Breadcrumbs;
use yii\bootstrap\ActiveForm;
use app\models\Users;

$this->title='ثبت نام';
?>

<div class="row box">
   <strong>لطفا برای ثبت نام فرم زیر را تکمیل نمایید: </strong>
   <?php $form=  ActiveForm::begin([
       'id'=>'register_form',
       'enableClientValidation'=>true,
       'options'=>['class'=>'form-horizontal'],
       'fieldConfig'=>[
           'template'=>"{label}\n<div class=\"col-sm-5\">{input}</div>\n<div class=\"col-sm-4\">{error}</div>",
           'labelOptions'=>['class'=>'col-sm-3 control-label'],
       ],
   ]); ?>
   <?= $form->field($model,'name',['inputOptions'=>['autofocus'=>'autofocus']]) ?>
   <?= $form->field($model,'family') ?>
   <?= $form->field($model,'username') ?>
   <?= $form->field($model,'password')->passwordInput() ?>
   <?= $form->field($model,'pass_repeat')->passwordInput() ?>
   <?= $form->field($model,'phone') ?>
   <?= $form->field($model,'email') ?>
   <?= $form->field($model,'postcode') ?>
   <?= $form->field($model,'address')->textarea(['rows'=>5,'style'=>'resize:none;']) ?>
   <div class="form-group">
       <div class="col-sm-offset-3 col-sm-2">
           <?= Html::submitButton('ثبت نام',['class'=>'btn btn-primary btn-block']) ?>
       </div>
   </div>
   <?php ActiveForm::end(); ?>
</div>

متشکرم.
پاسخ
تشکر شده توسط:
#2
چرا این بخش از کد بالا کار نمیکنه؟
'enableClientValidation'=>true,
پاسخ
تشکر شده توسط:
#3
توی id بجای _ از - استفاده کنید ببینید درست میشه؟
پاسخ
تشکر شده توسط:
#4
نه درست نشد.

کد مدل users :
class Users extends ActiveRecord
{
    public $pass_repeat;
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'users';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['name', 'family', 'city_id', 'address', 'postcode', 'phone', 'username', 'password', 'pass_repeat'], 'required'],
            [['city_id', 'confirmed'], 'integer'],
            [['address'], 'string'],
            [['name', 'family', 'phone', 'email', 'username', 'password'], 'string', 'max' => 255],
            [['postcode'], 'string', 'max' => 10],
            [['pass_repeat'], 'compare', 'compareAttribute'=> 'password', 'message'=>'تکرار رمز عبور اشتباه است'],
            [['pass_repeat'],'required', 'on'=>'register'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ردیف',
            'name' => 'نام',
            'family' => 'نام خانوادگی',
            'city_id' => 'شهر',
            'address' => 'نشانی',
            'postcode' => 'کد پستی',
            'phone' => 'تلفن',
            'email' => 'ایمیل',
            'username' => 'نام کاربری',
            'password' => 'رمز عبور',
            'pass_repeat'=>'تکرار رمز عبور',
            'confirmed' => 'فعال',
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getOrders()
    {
        return $this->hasMany(Orders::className(), ['user_id' => 'id']);
    }
}

پاسخ
تشکر شده توسط:
#5
خط زیر رو تو بخش تنظیمات فرم اضافه کنید :

'clientOptions' => array (
    'validateOnSubmit' => true,
) 
پاسخ
تشکر شده توسط:
#6
در فایل config\web.php قرار دادم. اجرا نشد. ارور میده.
پاسخ
تشکر شده توسط:
#7
برا فعال شدن ارور در فرم، تنظیمات خاصی نیازه؟
من layoat اصلی رو تغییر دادم و از main استفاده نمیکنم. میتونه از اون باشه.
پاسخ
تشکر شده توسط:
#8
شاید از این موضوع باشه. یه بار با Layout اصلی چک کنید و اگه درست شد، ببینید چه فایلها JS درج میشن توی اون لی اوت.
پاسخ
تشکر شده توسط: abdollah110110
#9
منظور من در فایل config اصلی برنامه نبود ، تو همون view فرم باید اضافه کنید، کد زیر منظورم بود :

<?php $form=  ActiveForm::begin([
       'id'=>'register_form',
       'enableClientValidation'=>true,
	   'clientOptions' => [
 			'validateOnSubmit' => true,
		], 
       'options'=>['class'=>'form-horizontal'],
       'fieldConfig'=>[
           'template'=>"{label}\n<div class=\"col-sm-5\">{input}</div>\n<div class=\"col-sm-4\">{error}</div>",
           'labelOptions'=>['class'=>'col-sm-3 control-label'],
       ],
   ]); ?>
پاسخ
تشکر شده توسط: abdollah110110
#10
این کد رو قرار دادم، کلا ارور داد. ازین نیست.

  'clientOptions' => [
 'validateOnSubmit' => true,
 ],
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان