10

万が一の為に型なしで作りたい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
4

2 に答える 2

21

通常、アクティブアイテムはモデルを操作するために使用されますが、Yii2 にはHtml従来の HTML と同じアイテムを使用するために呼び出されるヘルパー クラスがあります。

の beginForm()メソッドを使用しHtmlます。そして、そのようなことを試してください:

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(); ?>

このヘルパーの詳細については、ドキュメントを参照してください。

于 2015-09-03T06:42:34.907 に答える
13

を使用しているため、変数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 
}
于 2015-09-03T06:56:01.070 に答える