没有模型 yii2 的 ActiveForm [英] ActiveForm without model yii2

查看:31
本文介绍了没有模型 yii2 的 ActiveForm的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

这是我要创建的表单



<?php $form = ActiveForm::begin(['方法' =>'邮政',]);?><?= $form->field($model, 'KOMENTAR')->textarea(['rows' => 6])->label(false) ?><div class="form-group"><?= Html::submitButton('POST', ['class' =>'btn btn-primary']) ?>

这是错误

获取未知属性:yii\base\DynamicModel::KOMENTAR

解决方案

既然你在使用 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()) {//做你想做的事}

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

解决方案

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 
}

这篇关于没有模型 yii2 的 ActiveForm的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆