Class yii\behaviors\BlameableBehavior

继承yii\behaviors\BlameableBehavior » yii\behaviors\AttributeBehavior » yii\base\Behavior » yii\base\BaseObject
实现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 将在插入关联的 AR 对象时使用当前用户ID填充created_byupdated_by属性; 当更新 AR 对象时, 它将使用当前用户ID填充updated_by属性.

由于属性值将由此行为自动设置, 因此它们通常不是用户输入的, 因此不应该被验证, 即即created_byupdated_by不应该出现在模型的 rules() 方法.

如果你的属性名称不同, 则可以配置 $createdByAttribute$updatedByAttribute 属性, 如下所示:

public function behaviors()
{
    return [
        [
            'class' => BlameableBehavior::className(),
            'createdByAttribute' => 'author_id',
            'updatedByAttribute' => 'updater_id',
        ],
    ];
}

公共属性

隐藏继承的属性

属性类型描述定义在
$attributes array 要通过 $value 指定的值自动填充的属性列表. yii\behaviors\AttributeBehavior
$createdByAttribute string 将接收当前用户ID值的属性. yii\behaviors\BlameableBehavior
$defaultValue mixed 当用户是来宾(guest)时的默认值. yii\behaviors\BlameableBehavior
$owner yii\base\Component|null 该行为的所有者. yii\base\Behavior
$preserveNonEmptyValues boolean 是否保留非空属性值. yii\behaviors\AttributeBehavior
$skipUpdateOnClean boolean 是否在未修改$owner没有时跳过此行为. yii\behaviors\AttributeBehavior
$updatedByAttribute string 将接收当前用户ID值的属性. yii\behaviors\BlameableBehavior
$value mixed 将分配给当前属性的值. yii\behaviors\BlameableBehavior

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
attach() 将行为对象附加到组件. yii\base\Behavior
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
detach() 从组件中分离行为对象. yii\base\Behavior
evaluateAttributes() 计算属性值并将其分配给当前属性. yii\behaviors\AttributeBehavior
events() 声明 所有者 事件的事件处理程序. yii\behaviors\AttributeBehavior
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\behaviors\BlameableBehavior

受保护的方法

隐藏继承的方法

方法描述定义在
getDefaultValue() 获取默认值. yii\behaviors\BlameableBehavior
getValue() 返回当前属性的值. yii\behaviors\BlameableBehavior

属性详情

$createdByAttribute public 属性

将接收当前用户ID值的属性.

如果你不想记录创建者ID, 请将此属性设置为false.

public string $createdByAttribute 'created_by'
$defaultValue public 属性 (可用自版本: 2.0.14)

当用户是来宾(guest)时的默认值.

public mixed $defaultValue null
$updatedByAttribute public 属性

将接收当前用户ID值的属性.

如果你不想记录更新者ID, 请将此属性设置为false.

public string $updatedByAttribute 'updated_by'
$value public 属性

如果属性为null, 则将使用Yii::$app->user->id的值作为值.

将分配给当前属性的值.

这可以是一个匿名函数, 可以以数组格式调用(eg. [$this, 'methodName']), 一个表示数据库(DB)表达式的 Expression 对象(eg. new Expression('NOW()')), 标量, 字符串或任意值. 如果是前者, 则将函数的返回值分配给属性.

函数的签名应该如下:

function ($event)
{
    // 返回值将分配给该属性
}
public mixed $value null

方法详情

getDefaultValue() protected 方法 (可用自版本: 2.0.14)

获取默认值.

protected array|mixed getDefaultValue ( $event )
$event yii\base\Event
getValue() protected 方法

返回当前属性的值.

如果 $value 属性为null, 则将使用 $defaultValue 的值作为值.

该方法由 evaluateAttributes() 调用. 其返回值将被分配给与触发事件相对应的属性.

protected mixed getValue ( $event )
$event yii\base\Event

触发当前属性更新的事件.

return mixed

属性的值.

init() public 方法

初始化对象.

在使用给定的配置初始化对象之后, 在构造函数的末尾调用此方法.

public void init ( )