html - 如何使用多个 HTML 类创建 Yii2 ActiveForm 字段
问题描述
我正在努力使用 Yii2 的 ActiveForm 来创建我想要的特定 HTML/CSS 样式。下面的这段 HTML 代码(应用了 css)创建了一个表单字段,里面有图标,里面有提交按钮。
<form action="" class="form form--type">
<i class="bpi bpi--icon"></i>
<input type="email" class="field field--style-round" placeholder="Email address">
<button type="submit" class="button button--style-default">
Submit
</button>
</form>
开始和结束表单标签之间的所有内容都包含在表单中。我基本上需要为 Yii2 ActiveForm 创建一个包含所有 html 并正确显示的字段。
我尝试将 HTML 保留在适当的位置,并将 $form->field() 放在 < input type> 所在的位置,但图标和提交按钮最终位于它之外。现在,我尝试使用 textInput($options = []) 传递该样式,如下所示:
<?= $form->field($model, 'email')->textInput($options =
[
'class' =>
['form form--type-input-button-split', 'bpi bpi--email', 'field field--style-round'],
'placeholder' => 'Your email address',
'button' =>
['type' => 'submit', 'class' => 'button button--style-default']
])?>
但它没有像我需要的那样在字段内显示图标或提交按钮(按钮根本没有出现)。我确定我没有在该数组中设置按钮,但一般来说,如何在表单字段内创建一个包含几个特定 html 元素(如 <i>、<button>)的 Yii2 表单字段?
解决方案
您可以使用活动字段的部件属性和模板属性来配置输入的html,例如:
$form->field($model, 'email', [
'parts' => [
'{icon}' => '<i class="bpi bpi--icon"></i>',
'{button}' => '<button type="submit" class="button button--style-default">Submit</button>'
],
'template' => "{label}\n{icon}{input}{button}\n{hint}\n{error}"
])->textInput($options[
'class' => 'form form--type-input-button-split bpi bpi--email field field--style-round'],
'placeholder' => 'Your email address',
])?>
您还可以为表单的每个字段配置这些属性,例如:
$form = ActiveForm::begin([
'id' => 'myform',
'fieldConfig' => [
'parts' => [
'{icon}' => '<i class="bpi bpi--icon"></i>',
'{button}' => '<button type="submit" class="button button--style-default">Submit</button>'
],
'template' => "{label}\n{icon}{input}{button}\n{hint}\n{error}"
],
]);
推荐阅读
- python - 使用 Python 创建带有一行数字的 PNG
- python - 如何在 ubuntu 上更改 conda 基本环境路径?
- sql - 在 SQL 中按动态范围分组 (cockroachdb/postgres)
- java - Spring Security WebMvcConfigurer 自动化控制器预配置http方法解释
- ldap - 如何在 wso2 身份服务器 5.10.0 中将外部 ldap 作为主要用户存储
- django - 每当我的模型在管理员中填充时,如何创建触发事件?
- bash - 使用变量的 Bash 变量扩展
- python - 当您将日期时间对象转换为浮动时会发生什么
- c# - 如何在运行时改变敌人的生命值?
- python-3.x - 如何优化傅里叶级数中“k”的最佳值