1

也许这个问题很简单,但我没有找到答案

在我的模型中,我有规则:

array('name', 'length', 'max'=>65),

在我看来,我有代码:

$form->textField($model,'name');

渲染后我有:

<input id="name" type="text" value="" maxlength="65" name="name">

一切都很好,但是是否可以从视图页面上的模型中获取最大长度属性?我在页面某处显示最大长度,但我无法获得此属性。

谢谢

4

2 回答 2

3

尝试这个:

foreach ($model->getValidators('name') as $validator) {
    if ($validator instanceof CStringValidator && $validator->max !== null) {
        echo 'this is the max length ' . $validator->max;
        break;
    }
}

这将返回“名称”属性的所有验证器。然后搜索CStringValidator并返回最大尺寸。

于 2013-07-03T17:20:20.310 回答
2

你可以使用:

$model->getValidators('name');

这将返回您应用于“名称”属性的验证器数组。然后找到 StringValidator 及其名为 'max' 的字段,对于本示例。

于 2013-07-03T17:15:41.740 回答