Класс yii\behaviors\BlameableBehavior
| Наследование | yii\behaviors\BlameableBehavior » yii\behaviors\AttributeBehavior » yii\base\Behavior » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/behaviors/BlameableBehavior.php |
BlameableBehavior автоматически заполняет указанные атрибуты текущим ID пользователя.
Для использования BlameableBehavior, вставьте следующий код в свой класс ActiveRecord:
use yii\behaviors\BlameableBehavior;
public function behaviors()
{
return [
BlameableBehavior::className(),
];
}
По умолчанию, BlameableBehavior заполнит атрибуты created_by и updated_by текущим ID пользователя при вставке связанного объекта AR; он заполнит атрибут updated_by текущим ID пользователя при обновлении объекта AR.
Поскольку значения атрибутов будут устанавливаться автоматически этим поведением, они обычно не являются пользовательским вводом и, следовательно, не должны проверяться, т. е. created_by и updated_by не должны появляться в методе rules() модели.
Если имена ваших атрибутов отличаются, вы можете настроить свойства $createdByAttribute и $updatedByAttribute, как показано ниже:
public function behaviors()
{
return [
[
'class' => BlameableBehavior::className(),
'createdByAttribute' => 'author_id',
'updatedByAttribute' => 'updater_id',
],
];
}
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $attributes | массив | Список атрибутов, которые будут автоматически заполняться значением, указанным через $value. | yii\behaviors\AttributeBehavior |
| $createdByAttribute | строка | Атрибут, который получит значение текущего ID пользователя. Установите это свойство в false, если вы не хотите записывать ID создателя. | yii\behaviors\BlameableBehavior |
| $owner | yii\base\Component|null | Владелец этого поведения | yii\base\Behavior |
| $preserveNonEmptyValues | булево | Сохранять ли непустые значения атрибутов. | yii\behaviors\AttributeBehavior |
| $skipUpdateOnClean | булево | Пропустить ли это поведение, когда $owner не был изменен. | yii\behaviors\AttributeBehavior |
| $updatedByAttribute | строка | Атрибут, который получит значение текущего ID пользователя. Установите это свойство в false, если вы не хотите записывать ID обновляющего пользователя. | yii\behaviors\BlameableBehavior |
| $value | смешанное | Значение, которое будет назначено текущим атрибутам. | yii\behaviors\BlameableBehavior |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __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\BlameableBehavior |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| getValue() | Возвращает значение для текущих атрибутов. | yii\behaviors\BlameableBehavior |
Подробное описание свойств
$createdByAttribute общедоступное свойство
Атрибут, который получит значение текущего ID пользователя. Установите это свойство в false, если вы не хотите записывать ID создателя.
public string $createdByAttribute = 'created_by'
$updatedByAttribute общедоступное свойство
Атрибут, который получит значение текущего ID пользователя. Установите это свойство в false, если вы не хотите записывать ID обновляющего пользователя.
public string $updatedByAttribute = 'updated_by'
$value общедоступное свойство
Значение, которое будет назначено текущим атрибутам. Это может быть анонимная функция, вызываемый объект в формате массива (например, [$this, 'methodName']), объект Expression, представляющий выражение базы данных (например, new Expression('NOW()')), скаляр, строка или произвольное значение. Если это функция, то возвращаемое значение функции будет назначено атрибутам. Подпись функции должна быть следующей:
function ($event)
{
// return value will be assigned to the attribute
}
В случае, когда свойство null, будет использоваться значение Yii::$app->user->id.
public mixed $value = null
Подробное описание методов
getValue() защищённый метод
Возвращает значение для текущих атрибутов.
Этот метод вызывается методом evaluateAttributes(). Его возвращаемое значение будет присвоено атрибутам, соответствующим вызвавшему событию.
В случае, когда свойство $value null, значение Yii::$app->user->id будет использовано как значение.
| защищённый смешанный тип getValue ( $event ) | ||
|---|---|---|
| $event | yii\base\Event |
Событие, вызывающее обновление текущего атрибута. |
| return | смешанный тип |
Значение атрибута |
init() публичный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| публичный void init ( ) |
|---|
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-behaviors-blameablebehavior.html