Класс yii\behaviors\SluggableBehavior
| Наследование | yii\behaviors\SluggableBehavior » yii\behaviors\AttributeBehavior » yii\base\Behavior » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/behaviors/SluggableBehavior.php |
SluggableBehavior автоматически заполняет указанное свойство значением, которое может быть использовано в качестве слэга в URL.
Чтобы использовать SluggableBehavior, добавьте следующий код в ваш класс ActiveRecord:
use yii\behaviors\SluggableBehavior;
public function behaviors()
{
return [
[
'class' => SluggableBehavior::className(),
'attribute' => 'title',
// 'slugAttribute' => 'slug',
],
];
}
По умолчанию, SluggableBehavior заполнит свойство slug значением, которое может быть использовано в качестве слэга в URL при валидации связанного объекта AR.
Поскольку значения свойств будут устанавливаться автоматически этим поведением, они обычно не являются пользовательским вводом и, следовательно, не должны проверяться, т.е. свойство slug не должно появляться в методе rules() модели.
Если имя вашего свойства отличается, вы можете настроить свойство $slugAttribute следующим образом:
public function behaviors()
{
return [
[
'class' => SluggableBehavior::className(),
'slugAttribute' => 'alias',
],
];
}
Открытые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $attribute | строка|массив|null | Свойство или список свойств, значение которых будет преобразовано в слэг или null что означает, что свойство $value будет использовано для генерации слэга. | yii\behaviors\SluggableBehavior |
| $attributes | массив | Список свойств, которые должны быть автоматически заполнены значением, указанным через $value. | yii\behaviors\AttributeBehavior |
| $ensureUnique | boolean | Требовать уникальность сгенерированного значения слэга среди записей владельца класса. | yii\behaviors\SluggableBehavior |
| $immutable | boolean | Генерировать новый слэг, если он уже был сгенерирован ранее. | yii\behaviors\SluggableBehavior |
| $owner | yii\base\Component|null | Владелец этого поведения | yii\base\Behavior |
| $preserveNonEmptyValues | boolean | Сохранять непустые значения свойств. | yii\behaviors\AttributeBehavior |
| $skipUpdateOnClean | boolean | Пропускать это поведение, если значение $owner не было изменено. | yii\behaviors\AttributeBehavior |
| $slugAttribute | строка | Свойство, которое получит значение слэга | yii\behaviors\SluggableBehavior |
| $uniqueSlugGenerator | вызываемая функция | Генератор уникальных значений слэга. | yii\behaviors\SluggableBehavior |
| $uniqueValidator | массив | Настройка валидатора уникальности слэга. | yii\behaviors\SluggableBehavior |
| $value | вызываемая функция|строка|null | Значение, которое будет использовано в качестве слэга. | yii\behaviors\SluggableBehavior |
Открытые методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| attach() | Прикрепляет объект поведения к компоненту. | yii\base\Behavior |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| detach() | Открепляет объект поведения от компонента. | yii\base\Behavior |
| evaluateAttributes() | Вычисляет значение атрибута и присваивает его текущим атрибутам. | yii\behaviors\AttributeBehavior |
| events() | Объявляет обработчики событий для событий $owner. | yii\behaviors\AttributeBehavior |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\behaviors\SluggableBehavior |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| generateSlug() | Этот метод вызывается методом getValue() для генерации слэга. | yii\behaviors\SluggableBehavior |
| generateUniqueSlug() | Генерирует слэг, используя настроенный обратный вызов или инкремент итерации. | yii\behaviors\SluggableBehavior |
| getValue() | Возвращает значение для текущих атрибутов. | yii\behaviors\SluggableBehavior |
| isNewSlugNeeded() | Проверяет, нужна ли генерация нового слэга. Этот метод вызывается методом getValue() для проверки необходимости генерации нового слэга. | yii\behaviors\SluggableBehavior |
| makeUnique() | Этот метод вызывается методом getValue(), когда $ensureUnique имеет значение true, для генерации уникального слэга. | yii\behaviors\SluggableBehavior |
| validateSlug() | Проверяет, является ли заданное значение слэга уникальным. | yii\behaviors\SluggableBehavior |
Подробное описание свойств
$attribute общедоступное свойство
Атрибут или список атрибутов, значение которого будет преобразовано в слэг, или null означает, что будет использовано свойство $value для генерации слэга.
public string|array|null $attribute = null
$ensureUnique общедоступное свойство
Необходимо ли гарантировать, что сгенерированное значение слэга уникально среди записей класса владельца. При включенном свойстве поведение автоматически проверит уникальность слэга. В случае ошибки проверки будет выполнена попытка сгенерировать уникальное значение слэга на основе исходного, пока не будет достигнута удача.
public boolean $ensureUnique = false
$immutable общедоступное свойство (доступно начиная с версии 2.0.2)
Необходимо ли генерировать новый слэг, если он уже был сгенерирован ранее. Если true, поведение не сгенерирует новый слэг, даже если $attribute изменен.
public boolean $immutable = false
$slugAttribute общедоступное свойство
Атрибут, который получит значение слэга.
public string $slugAttribute = 'slug'
$uniqueSlugGenerator общедоступное свойство
Генератор уникальных значений слэга. Он используется в случае, когда $ensureUnique включен, и сгенерированный слэг не уникален. Это должен быть вызываемый объект PHP со следующей сигнатурой:
function ($baseSlug, $iteration, $model)
{
// return uniqueSlug
}
Если не задан, уникальный слэг будет сгенерирован путем добавления инкрементирующего суффикса к базовому слэгу.
public callable $uniqueSlugGenerator = null
$uniqueValidator общедоступное свойство
Настройка для валидатора уникальности слэга. Параметр 'class' можно опустить — по умолчанию будет использоваться yii\validators\UniqueValidator.
См. также yii\validators\UniqueValidator.
public array $uniqueValidator = []
$value общедоступное свойство
Значение, которое будет использовано в качестве слэга. Это может быть анонимная функция, произвольное значение или null. Если это анонимная функция, то возвращаемое значение функции будет использовано в качестве слэга. Если null , то свойство $attribute будет использовано для генерации слэга. Подпись функции должна быть следующей:
function ($event)
{
// return slug
}
public callable|string|null $value = null
Подробное описание методов
generateSlug() защищенный метод
Этот метод вызывается методом getValue() для генерации слэга.
Вы можете переопределить его, чтобы настроить генерацию слэга. По умолчанию реализация вызывает yii\helpers\Inflector::slug() для строк входных данных, соединенных дефисами (-).
| защищенный строка generateSlug ( $slugParts ) | ||
|---|---|---|
| $slugParts | массив |
Массив строк, которые должны быть объединены и преобразованы для генерации значения слэга. |
| возврат | строка |
Результат преобразования. |
generateUniqueSlug() защищенный метод
Генерирует слэг, используя настроенный обратный вызов или инкремент итерации.
| защищенный строка generateUniqueSlug ( $baseSlug, $iteration ) | ||
|---|---|---|
| $baseSlug | строка |
Базовое значение слэга |
| $iteration | целое число |
Номер итерации |
| возврат | строка |
Новое значение слэга |
| выбрасывает | yii\base\InvalidConfigException | |
getValue() защищенный метод
Возвращает значение для текущих атрибутов.
Этот метод вызывается методом evaluateAttributes(). Его возвращаемое значение будет присвоено атрибутам, соответствующим триггерному событию.
| защищенный смешанный getValue ( $event ) | ||
|---|---|---|
| $event | yii\base\Event |
Событие, которое вызывает обновление текущего атрибута. |
| возврат | смешанный |
Значение атрибута |
init() общедоступный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| общедоступный void init ( ) |
|---|
isNewSlugNeeded() защищенный метод (доступно начиная с версии 2.0.7)
Проверяет, нужна ли генерация нового слэга. Этот метод вызывается методом getValue() для проверки необходимости генерации нового слэга.
Вы можете переопределить его, чтобы настроить проверку.
| защищенный boolean isNewSlugNeeded ( ) |
|---|
makeUnique() защищенный метод (доступно начиная с версии 2.0.7)
Этот метод вызывается методом getValue(), когда $ensureUnique имеет значение true, для генерации уникального слэга.
Вызывает generateUniqueSlug(), пока сгенерированный слэг не станет уникальным, и возвращает его.
См. также:
| защищенный строка makeUnique ( $slug ) | ||
|---|---|---|
| $slug | строка |
Базовое значение слэга |
| возврат | строка |
Уникальный слэг |
validateSlug() защищенный метод
Проверяет, является ли заданное значение слэга уникальным.
| защищенный boolean validateSlug ( $slug ) | ||
|---|---|---|
| $slug | строка |
Значение слэга |
| возврат | boolean |
Является ли слэг уникальным. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-behaviors-sluggablebehavior.html