我正在使用此示例Bootstrap3 example来呈现表单,并且想知道是否可以根据控件类型添加自定义类名以形成输入包装器。我尝试了以下但它适用于表单输入而不是周围的包装器div(在这种情况下为form-group):
foreach ($form->getControls() as $control) {
$type = $control->getOption('type');
$control->getControlPrototype()->addClass('form-' . $control->getControlPrototype()->type);
}
答案 0 :(得分:1)
输入包装器不是 Control (输入)的关注点,而是 Renderer 的关注点。 NEXUS_HOME/etc/custom.properties
将控件包装在renderPair
方法中 - 其他渲染器甚至不需要进行任何包装。因此,你无法获得包装器的原型。
您可以使用$control->setOption('class', …)
,而felix.native.osname.alias.windowsserver2012=windows server 2012,win32
会将其用作包装器的类(正如您在DefaultFormRenderer
的来源中看到的那样)。
与@hrach上面提到的实现自定义IFormRenderer
相比,不是直接操作表单。他的Bs3FormRenderer就是一个很好的例子。