con*_*322 7 javascript php frameworks mailchimp yii2
我想知道如何在Yii2框架中创建没有模型的表单,因为我正在创建mailchimp注册表单,因此下面的代码生成表单时不需要模型,但是您可以看到它使用模型.
<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => 255]) ?>
<?php ActiveForm::end(); ?>
Run Code Online (Sandbox Code Playgroud)
我仍然使用activeform,如何在不抛出错误的情况下删除$ model变量?
Bli*_*izz 10
Yii2有一个很好的小东西叫做a DynamicModel.这基本上允许您动态创建模型,以便您仍然可以使用所有ActiveForm和验证的好东西,但不必承诺为它编写整个模型类.可能很有趣.
文档中的示例:
public function actionSearch($name, $email)
{
$model = DynamicModel::validateData(compact('name', 'email'), [
[['name', 'email'], 'string', 'max' => 128],
['email', 'email'],
]);
if ($model->hasErrors()) {
// validation fails
} else {
// validation succeeds
}
}
Run Code Online (Sandbox Code Playgroud)
显然,这些实例也可以用于ActiveForm-widget.然后,您可以先在操作中运行正确的验证,然后将数据传递给MailChimp.如果您想要HTML Purifier作为内容验证的一部分运行,可能会很方便
正如 @DamienPirsy 建议的那样 - 使用普通。如果你想使用 yii2 功能 - 使用类 yii\helpers\BaseHtml ( http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html ) 有所有方法可以根据你的需要构建任何表单。然后您可以在应用程序的任何控制器中的任何操作中操作它。但这不是真正的 MVC 方式。这就是为什么 Yii/Yii2 建议您使用模型。