【问题标题】:How to limit max char on redactor limiter plugin?如何限制编辑器限制器插件的最大字符?
【发布时间】:2017-01-24 15:37:44
【问题描述】:

我有这段代码

<div class="col-xs-6">
        <?php echo $form->field($model, 'deskripsi_produk')->widget(Redactor::className(),['clientOptions'=>['autoresize'=>'true', 'limiter' => 20, 'plugins' => ['limiter'], 'buttons'=> ['html', 'formatting', 'bold', 'italic','underline','lists','horizontalrule'],]]);?>
        </div>

它可以限制 20 个字符,但是我如何将文本区域限制为模型上定义的最大字符串,而不是限制特定数字?

这是我的模型

class TbProduk extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public  $image;
    public static function tableName()
    {
        return 'tb_produk';
    }

public function rules()
{
    return [
        ...
        [['deskripsi_produk'], 'string', 'max' => 2000],
        [['deskripsi_produk'], 'checkDesc'],
        ...
    ];
}
}

【问题讨论】:

  • 模型中定义的最大长度在哪里?
  • @topher 问题已更新

标签: yii2 redactor


【解决方案1】:

试图通过rules 获取价值是一个糟糕的主意。相反,您应该在 TbProduk 中创建一个常量来保存长度:

class TbProduk extends \yii\db\ActiveRecord
{
    const DESKRIPSI_PRODUK_LENGTH = 2000;
    ...
    public function rules()
    {
        return [
            ...
            [['deskripsi_produk'], 'string', 'max' => static::DESKRIPSI_PRODUK_LENGTH],
            ...
        ];
    }
}

在你看来:

<div class="col-xs-6">
    <?php echo $form->field($model, 'deskripsi_produk')->widget(Redactor::className(),['clientOptions'=>['autoresize'=>'true', 'limiter' => TbProduk::DESKRIPSI_PRODUK_LENGTH, 'plugins' => ['limiter'], 'buttons'=> ['html', 'formatting', 'bold', 'italic','underline','lists','horizontalrule'],]]);?>
</div>

【讨论】:

    猜你喜欢
    • 2012-08-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    相关资源
    最近更新 更多