Yii2 ActiveFrom未正确验证。
这是我的观点,由Yii2 Gii生成。 我没有添加任何东西,但它仍未正确验证。
<div class="discussion-form">
<?php $form = ActiveForm::begin(); ?>
<?php $form->field($model, 'userId')->textInput() ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => 500]) ?>
<?= $form->field($model, 'text')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'image')->textInput(['maxlength' => 500]) ?>
<?= $form->field($model, 'upvotes')->textInput() ?>
<?= $form->field($model, 'downvotes')->textInput() ?>
<?= $form->field($model, 'commentCount')->textInput() ?>
<?= $form->field($model, 'tags')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'createdAt')->textInput() ?>
<?= $form->field($model, 'updatedAt')->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>
表单以第一个元素结尾:
<div class="discussion-form">
<form id="w0" action="/web/discussion/create" method="post">
<input type="hidden" name="_csrf" value="OUJKTVJKMmhVJB45MThbAVQkehgADmcdXToseREpBQ9cBnILDShGBg==">
<!--?php<div class="form-group field-discussion-title required"-->
<label class="control-label" for="discussion-title">Title</label>
<input type="text" id="discussion-title" class="form-control" name="Discussion[title]" maxlength="500">
<div class="help-block"></div>
</form></div>
<div class="form-group field-discussion-text required">
<label class="control-label" for="discussion-text">Text</label>
<textarea id="discussion-text" class="form-control" name="Discussion[text]" rows="6"></textarea>
<div class="help-block"></div>
</div>
这是问题所在:
<!--?php<div class="form-group field-discussion-title required"-->
答案 0 :(得分:0)
第三行:
<?php $form->field($model, 'userId')->textInput() ?>
应该是
<?= $form->field($model, 'userId')->textInput() ?>
这真的是由gii创建的吗?
答案 1 :(得分:0)
这当然不是未经编辑的:)
正如 robsch 指出的那样,您的错误在<?php $form->field($model, 'userId')->textInput() ?>
ActiveForm中的表单元素需要回显,您可以写<?php echo $form->....->textInput() ?>
或<?= $form->....->textInput() ?>
如果要从表单中删除ID字段,则必须将其注释掉或将其完全删除。此外,您可能必须从模型中的required中删除userId:
public function rules()
{
return [
[['userId', 'title'], 'required'],
...
]
}