Spec-Zone.ru › Yii 2.0

Класс 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(), пока сгенерированный слэг не станет уникальным, и возвращает его.

См. также:

  • getValue()
  • 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API