我喜欢全局更改'CWidgets'的默认设置,例如'CActiveForm','CHtml'等,以便与bootstrap或其他css框架一起使用。为此我在main.php中使用'WidgetFactory。
这是我的main.php文件
main.php
'widgetFactory'=>array(
'widgets'=>array(
// <form></form>
'CActiveForm' => array(
// the CSS class name for error messages. (CHtml::$errorMessageCss)
'errorMessageCssClass'=>'errorMessage help-block',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>false,
'enableClientValidation' => false,
'htmlOptions'=>array(
),
),
),
),
这有效,类的'errorMessage'和'help-block'都是 在执行
时添加到表单中的所有单个错误消息<?php echo $form->error($model,'username'); ?>
会渲染
<div class="errorMessage help-block" id="Tbltask_username_em_">Username cannot be empty
</div>
来自'CActiveForm'的'errorMessageCssClass'是'公共财产'。
但现在我想从'CActiveForm'改变'errorSummary'这是'公共方法'。我想添加类'alert'和'alert-danger'。
<?php echo $form->errorSummary($model); ?>
通常会呈现
<div class="errorSummary" id="tbltask-form_es_">
<ul>
<li>Username cannot be empty.</li>
</ul>
</div>
怎么做?将它添加到'WidgetFactory'中的'CActiveForm'不起作用
// <form></form>
'CActiveForm' => array(
// 'Public Property' SUCCESS :) CHtml::$errorMessageCss
'errorMessageCssClass'=>'errorMessage help-block',
// 'Public Method' FAIL :( CHtml::errorSummary
'errorSummary'=>'errorSummary alert alert-danger',
),
有人可以向我解释“公共属性”和“公共方法”之间的区别,以及如何设置“公共方法”的默认设置?喜欢'CActiveForm'中的errorSummary?
我注意到所有消息都来自'CHtml'。如何更改main.php中的默认“CHtml”设置?将它添加到'widgetFactory'不起作用(或者是吗?)
答案 0 :(得分:0)
CActiveForm::errorSummary()
似乎需要几个参数,包括htmlOptions。您可以将html属性作为键/值对放在此处。
<?= $form->errorSummary($model, NULL, NULL, ['style' => 'errorSummary alert alert-danger']) ?>
或更旧的php版本
<?php echo $form->errorSummary($model, NULL, NULL, array('style' => 'errorSummary alert alert-danger')) ?>
我没看到你如何向widgetfactory添加这样的东西,所以你只需这样做或者等待其他人回答那个部分。