【问题标题】:yii2 cant save form value to db $model->getErrors() says fileds are blankyii2 无法将表单值保存到 db $model->getErrors() 表示字段为空白
【发布时间】:2017-08-21 11:05:25
【问题描述】:

我试图将我的表单值提交给 db,但它不会保存我尝试了 $model->getError 方法来查看错误,但它说:

Array ( [name] => Array ( [0] => نام cannot be blank. ) [family] => Array ( [0] => فامیلی cannot be blank. ) [phone] => Array ( [0] => شماره تماس cannot be blank. ) [email] => Array ( [0] => ایمیل cannot be blank. ) [address] => Array ( [0] => آدرس cannot be blank. ) [brithday] => Array ( [0] => سال تولد cannot be blank. ) [age] => Array ( [0] => سن cannot be blank. ) [ability] => Array ( [0] => توانایی cannot be blank. ) [role] => Array ( [0] => نقش cannot be blank. ) )

如您所见,我的所有字段都是空的,但根据浏览器检查网络,它们不是空的! + 在模型类中更改一些规则过滤器对我没有帮助 + 我使用 $model->save(false) 将在没有数据的表中创建一个空行 谁能告诉我这里出了什么问题你可以看到网络日志:

Developers[name]:gholi
Developers[family]:gholizade
Developers[phone]:1234567890
Developers[email]:aa@aa.com
Developers[address]:aa ciry
Developers[brithday]:1396/05/02
Developers[age]:123
Developers[ability]:php
Developers[role]:develoer
Developers[join_date]:

这是我的控制器操作创建

   public function actionCreate()
    {

        $model = new Developers();

        if (Yii::$app->request->post()) {
            $model->join_date = date('Y-m-d h:m:s');
            if ($model->save()){
                echo 1;
            }else{
                print_r($model->getErrors());
            }
        } else {
            return $this->render('_form', [
                'model' => $model
            ]);
        }

    }

还有我的表单页面

<div class="developer-form">

        <?php $form = ActiveForm::begin([
            'id' => $model->formName(),
            'enableAjaxValidation' => true,
            'validationUrl'=>\yii\helpers\Url::toRoute('admin/site-admin/validation')
        ]); ?>

        <?= $form->field($model, 'name')->textInput(['minlength'=>true]) ?>
        <?= $form->field($model, 'family')->textInput() ?>
        <?= $form->field($model, 'phone')->textInput() ?>
        <?= $form->field($model, 'email')->textInput() ?>
        <?= $form->field($model, 'address')->textInput() ?>
        <?= $form->field($model, 'brithday')->widget(jDate\DatePicker::className()) ?>
        <?= $form->field($model, 'age')->textInput() ?>
        <?= $form->field($model, 'ability')->textInput() ?>
        <?= $form->field($model, 'role')->textInput() ?>
        <?= $form->field($model, 'join_date')->textInput() ?>


        <div class="form-group">
            <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
        </div>

        <?php ActiveForm::end(); ?>
    </div>

这是我的模型类

class Developers extends ActiveRecord
{


    public static function tableName()
    {
        return 'developers';
    }


    public function rules()
    {
        return [
            [[
                'name',
                'family',
                'phone',
                'email',
                'address',
                'brithday',
                'age',
                'ability',
                'role',
            ], 'required'],
            [['join_date'], 'safe'],
            ['email', 'email'],
            [['phone'], 'integer', 'min' => 10],
            [['address'], 'string', 'max' => 100],
            [['name'], 'string', 'min' => 3],


        ];
    }

【问题讨论】:

    标签: yii2


    【解决方案1】:

    您没有将值加载到模型中,请将if 更改为:

    if($model->load(Yii::$app->request->post())) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2016-06-29
      相关资源
      最近更新 更多