Yii2活动表格未正确验证

时间:2015-03-16 08:40:17

标签: php yii2

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"-->

2 个答案:

答案 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'],
        ...
    ]
}