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.

Share:
32,370
Noobs To be Pro Addict
Author by

Noobs To be Pro Addict

I am always being Noob, Foolish and curious. For teh best increase

Updated on September 21, 2020

Comments

  • Noobs To be Pro Addict
    Noobs To be Pro Addict over 3 years

    I want to create ActiveForm without model for just in case something. I did try with dynamicModel 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
    Tony over 8 years
    Do not use BaseHtml. Use yii\helpers\Html instead.
  • soju
    soju over 8 years
    You are wrong about "Html have more tools for view design", you should read this yiiframework.com/doc-2.0/…
  • bnu
    bnu about 8 years
    You should check your Code, there are some synthax errors in it like at beginForm()([ 'method' => 'post', ]) and (['rows' => 6, name='KOMENTAR'])
  • user1742529
    user1742529 about 2 years
    It 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-dat‌​a")[0], {})');