没有模型 yii2 的 ActiveForm

ActiveForm without model yii2

我想创建 ActiveForm 没有模型以防万一。我确实尝试过 dynamicModel 但我遇到了一些错误:

use yii\base\DynamicModel;
$model = DynamicModel::validateData(compact('KOMENTAR'), [
   [['KOMENTAR'], 'string', 'max' => 128],
]);

这是我要创建的表单

<br>
<?php $form = ActiveForm::begin([
    'method' => 'post',
]); ?>

<?= $form->field($model, 'KOMENTAR')->textarea(['rows' => 6])->label(false) ?>

<div class="form-group">
    <?= Html::submitButton('POST', ['class' => 'btn btn-primary']) ?>
</div>

这是错误

Getting unknown property: yii\base\DynamicModel::KOMENTAR

通常 ActiveItems 用于与模型一起工作,但是 Yii2 有一个助手 class 称为 Html 来使用与 classic HTML.

使用 Html 中的 beginForm() 方法。并尝试这样的事情:

use yii\helpers\Html;

<?= Html::beginForm(['/controller/view', 'id' => $model->id], 'POST'); ?>
<?= Html::textarea('KOMENTAR', '', ['rows' => 6])->label(false); ?>
<div class="form-group">
    <?= Html::submitButton('POST', ['class' => 'btn btn-primary']); ?>
</div>
<?= Html::endForm(); ?>

您可以在 the documentation 中阅读有关此助手的更多信息。

由于您正在使用 compact('KOMENTAR'),您应该有一个 $KOMENTAR 变量。

阅读更多关于 compact 的信息:http://php.net/manual/fr/function.compact.php

或者您应该像这样简单地创建您的模型:

$model = new \yii\base\DynamicModel(['KOMENTAR']);
$model->addRule(['KOMENTAR'], 'string', ['max' => 128]);
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
    // do what you want 
}