我如何向Kartik DetailView添加标签提示

问题描述 投票:1回答:2

我正在使用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的提示?

yii2
2个回答
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')

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.'
) ?>
© www.soinside.com 2019 - 2024. All rights reserved.