未从模型-Yii2获取数据

未从模型-Yii2获取数据,yii2,Yii2,我在yii中插入了来自activeForm的数据 <?php $form = ActiveForm::begin([ 'id' => 'register-form', 'options' => ['class' => 'form-horizontal'], 'fieldConfig' => [ 'template' => "<div class=\"\">{label}{in

我在yii中插入了来自activeForm的数据

<?php $form = ActiveForm::begin([
    'id'          => 'register-form',
    'options'     => ['class' => 'form-horizontal'],
    'fieldConfig' => [
        'template'     => "<div class=\"\">{label}{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
        'labelOptions' => ['class' => 'col-lg-1 control-label'],
    ],
]);?>

<?= $form->field($model, 'firstname')->textInput(['placeholder' => 'First Name']) ?>
<?= $form->field($model, 'middlename')->textInput(['placeholder' => 'Middle Name']) ?>
<?= $form->field($model, 'lastname')->textInput(['placeholder' => 'Last Name']) ?>
这里我有给名字和姓氏的规则(必选)。 所以中间名值为NULL


若我为middlename提供required,那个么该值存储在db中。否则为空

您始终需要为要通过批量分配保存的属性设置一些验证规则。 例如,只需再添加一条规则,您的middlename就会被保存:

public function rules()
{
    return [
         [['firstname', 'lastname'], 'required'],
         ['middlename', 'string'], // rule for middlename
    ];
}

能否显示模型规则()数组?为什么在控制器中使用db createCommand而不是$modelSave()。能否显示与您的问题相关的控制器操作?AFAIK
$db->insert()
将不使用验证。您应该使用
$model->save()
$model->validate()
。像应该做的那样去做。请参阅。如果我使用$model->save(),它将显示id不是空值。Im使用id作为数据库中的自动增量
public function rules()
{
    return [
         [['firstname', 'lastname'], 'required'],
         ['middlename', 'string'], // rule for middlename
    ];
}