@Iossarian

Как обрезать длину атрибута для слага?

Добрый день. Нужно обрезать тайтл статьи и полученную строку отдавать на сохранение для слагов. Действую следующим образом:
public $strTitle;

public function getSlug () {
        $this->strTitle = mb_substr($this->title, 0, 59);
        return $this->strTitle;
    }

public function behaviors()
{
    return [
        [
            'class' => SluggableBehavior::className(),
            'attribute' => 'strTitle',
            'slugAttribute' => 'slug',
        ],
    ];
}

но, естественно, не отрабатывает как нужно. Суть проблемы простая, но не понимаю как это реализовать именно в yii.
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
В модели задайте свойство "value"
public function behaviors()
{
    return [
        [
            'class' => SluggableBehavior::class,
            //'attribute' => 'title',
            'value' => function($event){
               return mb_substr($this->title, 0, 5);
            }
        ]
    ];
}

Возвращает из "Test slugbehaviors" slug длиной в пять символов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы