Yii2加载和保存ActiveForm
型号: 控制器:Yii2加载和保存ActiveForm,yii2,active-form,Yii2,Active Form,型号: 控制器: class Team extends ActiveRecord { public function rules() { return [ [['code', 'name'], 'required'], ]; } } 视图: 如何更改名称属性的值?名称属性的当前格式Team[code]是因为YiiActiveForm使用模型信息生成格式为ModelName[FieldName]的输入名称这有助于减少在保存前
class Team extends ActiveRecord {
public function rules() {
return [
[['code', 'name'], 'required'],
];
}
}
视图:
如何更改名称属性的值?名称属性的当前格式
Team[code]
是因为YiiActiveForm
使用模型信息生成格式为ModelName[FieldName]的输入名称
这有助于减少在保存前手动将post
字段分配给模型字段的工作量,如果您不希望表单字段名称遵循ActiveForm
格式,则需要使用helper创建表单和字段,但要小心,因为您现在需要手动将字段映射到模型,那又怎么样你要做的就是从
[{"field":"code",
"message":"Code cannot be blank."},
{"field":"name",
"message":"Name cannot be blank."}]
然后调用
$model->save()
或$model->validate()
,除此之外,请在调用$model->load()
后立即尝试打印($model->attributes)
,以检查值是否正确加载到模型中名称属性团队[code]的当前格式
是因为YiiActiveForm
使用模型信息生成格式为ModelName[FieldName]的输入名称
这有助于减少在保存前手动将post
字段分配给模型字段的工作量,如果您不希望表单字段名称遵循ActiveForm
格式,则需要使用helper创建表单和字段,但要小心,因为您现在需要手动将字段映射到模型,那又怎么样你要做的就是从
[{"field":"code",
"message":"Code cannot be blank."},
{"field":"name",
"message":"Name cannot be blank."}]
然后调用$model->save()
或$model->validate()
,除此之外,请在调用$model->load()
后立即尝试打印($model->attributes)
,检查值是否正确加载到模型
中,以便输入的名称不应为团队[代码]
但是应该是code
但是为什么要这样做呢?难道不想将它们保存到数据库中吗?你到底想做什么也许我能帮你做得更好way@MuhammadOmerAslam是的,这是正确的,我确实想将它们保存到数据库中。当我只使用“代码”和“名称”时,我已经在另一个地方更新了这个表。但是我不是在那里用ActiveForm
创建表单。谢谢你能提供的任何帮助!因此,您希望输入的名称不应为Team[code]
,而应为code
,但为什么要这样做?您不想将它们保存到数据库中吗?你到底想做什么也许我能帮你做得更好way@MuhammadOmerAslam是的,这是正确的,我确实想将它们保存到数据库中。当我只使用“代码”和“名称”时,我已经在另一个地方更新了这个表。但是我不是在那里用ActiveForm
创建表单。谢谢你能提供的任何帮助!因此,我为我的任务选择了错误的工具。为了继续使用ActiveForm
,我是否必须更改型号或控制器?你说ModelName[FieldName]
有助于减少工作量,但目前我得到的回答是code
和name
没有价值,这意味着ModelName[FieldName]
不是我的控制器或模型所期望的格式。为了使用ModelName[FieldName]
格式,我是否必须更改我的控制器或模型?为了在向任何控制器操作提交表单时使用活动表单,您需要在那里查看,如果您使用$model->load(Yii:$app->request->post()正确加载带有post数组的模型
然后调用$model->save()
或$model->validate()
,除此之外,请在调用$model->load()
后立即尝试打印($model->attributes)
以检查值是否正确加载到model@HarrySo中。因此,我为我的任务选择了错误的工具。为了继续使用ActiveForm
,我是否必须更改型号或控制器?你说ModelName[FieldName]
有助于减少工作量,但目前我得到的回答是code
和name
没有价值,这意味着ModelName[FieldName]
不是我的控制器或模型所期望的格式。为了使用ModelName[FieldName]
格式,我是否必须更改我的控制器或模型?为了在向任何控制器操作提交表单时使用活动表单,您需要在那里查看,如果您使用$model->load(Yii:$app->request->post()正确加载带有post数组的模型
然后调用$model->save()
或$model->validate()
,除此之外,请在调用$model->load()
后立即尝试打印($model->attributes)
,以检查值是否正确加载到model@Harry>中
[{"field":"code",
"message":"Code cannot be blank."},
{"field":"name",
"message":"Name cannot be blank."}]
<?php $form = ActiveForm::begin(['action' => 'team/create'], 'options' => ['data-pjax' => true ]]); ?>
<?= $form->field($model, 'code')->textInput() ?>
<?= $form->field($model, 'name')->textInput() ?>
<div class="form-group">
<?= Html::submitButton(Yii::t('app', 'Create'), ['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
<?= yii\helpers\Html::beginForm(['team/create', 'id' => 'team-form'], 'post', ['data-pjax' => true]) ?>
<?= yii\helpers\Html::activeInput('text',$model, 'code')?>
<?= yii\helpers\Html::activeInput('text',$model, 'name')?>
<div class="form-group">
<?= Html::submitButton(Yii::t('app', 'Create'), ['class' => 'btn btn-success']) ?>
</div>
<?= Html::endForm() ?>
$model->load(Yii::$app->request->post())