Как ограничить максимальное количество символов в плагине ограничителя редактора?

У меня есть этот код на мой взгляд

<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'],
        ...
    ];
}
}

person Dark Cyber    schedule 23.01.2017    source источник
comment
Где максимальная длина определена в модели?   -  person topher    schedule 23.01.2017
comment
вопрос @topher обновлен   -  person Dark Cyber    schedule 24.01.2017


Ответы (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>
person topher    schedule 24.01.2017