我正在使用Kartik DetailView,并希望在用户将鼠标悬停在标签上时显示提示(如GII表单)。我尝试了以下方法,但它不起作用。
$attributes = [
[ 'attribute'=>'name',
'inputWidth'=>'50%',
],
[ 'attribute'=>'round_precision',
'hint' => 'Specify the number of decimal digits after the decimal to round to. Use a negative value to round the integer part of the number to the number of digits before the decimal. A value of 1 will round 1.855 to 1.7, and a value of -2 will round 1.855 1.86. A value of -1 will round 17.6 to 18, and a value of -2 will round 17.6 to 20.',
'inputWidth'=>'10%',
],
];
如何在Kartik DetailView小部件中获得类似Gii的提示?
答案 0 :(得分:2)
在yii2 Model类中有很好的方法attributeHints()
/**
* Returns the attribute hints.
*
* Attribute hints are mainly used for display purpose. For example, given an attribute
* `isPublic`, we can declare a hint `Whether the post should be visible for not logged in users`,
* which provides user-friendly description of the attribute meaning and can be displayed to end users.
*
* Unlike label hint will not be generated, if its explicit declaration is omitted.
*
* Note, in order to inherit hints defined in the parent class, a child class needs to
* merge the parent hints with child hints using functions such as `array_merge()`.
*
* @return array attribute hints (name => hint)
* @since 2.0.4
*/
public function attributeHints()
{
return [];
}
您可以使用
'hint' => $model->getAttributeHint('round_precision')
答案 1 :(得分:0)
看来GII正在使用Bootstrap Popovers。我按照http://www.yiiframework.com/wiki/664/activating-bootstrap-3-tooltips-popover-for-your-yii-site/上的说明操作,然后开始使用帮助弹出框创建标签。
我创建了以下函数来渲染标签。
/**
* Create a help popover to be shown on an input form.
* @param $label string The label to display for the input.
* @param $help string The help text to display.
* @return string
*/
public static function renderLabelHelp($label, $help) {
return Html::tag('span', $label, [
'data-toggle'=>'popover',
'data-trigger' => 'click hover',
'data-placement' => 'auto right',
'data-html' => 'true', // allow html tags
'data-title'=> 'Field Help',
'data-content'=>$help,
'style'=>'text-decoration: underline; cursor:help;'
]);
}
然后我用这样的东西调用函数。
<?= Html::label(MyHelpers::renderLabelHelp(
$model->getAttributeLabel('round_precision'),
'Specify the number of decimal digits after the decimal to round to.<br>Use a negative value to round the integer part of the number to the number of digits before the decimal.<br>A value of 1 will round 1.855 to 1.7, and a value of -2 will round 1.855 1.86. A value of -1 will round 17.6 to 18, and a value of -2 will round 17.6 to 20.'
) ?>