ActiveForm without model yii2
32,370
Solution 1
Since you are using compact('KOMENTAR')
, you should have a $KOMENTAR
variable.
Read more about compact
: http://php.net/manual/fr/function.compact.php
Or you should simply create your model like this :
$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
}
Solution 2
Normally ActiveItems are used to work with a model, but Yii2 have a helper class called Html
to use the same items like classic HTML.
Use beginForm() method from Html
. And try something like that:
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(); ?>
You can read more about this helper in the documentation.
Author by
Noobs To be Pro Addict
I am always being Noob, Foolish and curious. For teh best increase
Updated on September 21, 2020Comments
-
Noobs To be Pro Addict over 3 years
I want to create
ActiveForm
without model for just in case something. I did try withdynamicModel
but i got some error :use yii\base\DynamicModel; $model = DynamicModel::validateData(compact('KOMENTAR'), [ [['KOMENTAR'], 'string', 'max' => 128], ]);
This is the form i want to create
<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>
This is the error
Getting unknown property: yii\base\DynamicModel::KOMENTAR
-
Tony over 8 yearsDo not use BaseHtml. Use yii\helpers\Html instead.
-
soju over 8 yearsYou are wrong about "Html have more tools for view design", you should read this yiiframework.com/doc-2.0/…
-
bnu about 8 yearsYou should check your Code, there are some synthax errors in it like at
beginForm()([ 'method' => 'post', ])
and(['rows' => 6, name='KOMENTAR'])
-
user1742529 about 2 yearsIt is nice, but does not help me with CKEDITOR 4 + widget for yii2 ( github.com/2amigos/yii2-ckeditor-widget ), when model is absent, so only js helps:
$inputText = Html::textArea('PageData[data]', $data0, ['id'=>'pagedata-data']); echo $inputText; $this->registerJs('CKEDITOR.replace($("textarea#pagedata-data")[0], {})');