sjaakp / yii2-novelty
表示 Yii2 ActiveRecord 新颖性的属性。
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-08-29 13:46:19 UTC
README
表示 Yii2 ActiveRecord 新颖性的属性
yii2-novelty 是一个 行为,它将名为 'novelty' 的属性添加到 Yii2 PHP 框架中的 ActiveRecord 中。此属性有以下三个值之一:
'new':如果记录自用户上次访问网站以来已创建;'updated':如果记录自用户上次访问网站以来已更新;null:在其他情况下。
类 NoveltyBehavior 继承自 Yii 的 TimestampBehavior。'novelty' 的值基于 TimestampBehavior 的属性值,通常称为 'created_at' 和 'updated_at',以及用户上次访问网站的时间。上次访问时间存储在两个cookie中。
安装
使用 Composer 以常规方式安装 yii2-novelty。将以下内容添加到您的 composer.json 文件的 require 部分
"sjaakp/yii2-novelty": "*"
或者运行
composer require sjaakp/yii2-novelty
您可以通过 下载 ZIP 格式的源代码 来手动安装 yii2-novelty。
使用 NoveltyBehavior
将 NoveltyBehavior 添加到您的 ActiveRecord,如下所示
<?php
use sjaakp\novelty\NoveltyBehavior;
class MyRecord extends ActiveRecord
{
public function behaviors( ) {
return [
[
'class' => NoveltyBehavior::class,
// ... options ...
],
// ... more behaviors ...
];
}
...
}
NoveltyBehavior 继承自 yii\behaviors\TimestampBehavior,因此您不应该同时使用它们。
添加 NoveltyBehavior 后,ActiveRecord 将具有一个额外的属性 'novelty',它可以像其他属性一样被读取,例如,使用
$novelty = $record->novelty;
它是一个只读属性,因此不能被写入。
选项
在大多数情况下,NoveltyBehavior 将直接工作。以下是一些可用的选项,可用于微调。所有选项都是可选的。
- noveltyAttribute
string只读属性名称。默认:'novelty'。 - visitCookie
string存储上次访问时间的cookie名称。默认:'visit'。 - visitStamina
integer访问cookie的过期时间(秒)。默认:31536000(一年)。 - cacheCookie
string缓存上次访问时间的cookie名称。默认:'visit-cache'。 - cacheStamina
integer缓存cookie的过期时间(秒)。默认:1800(30分钟)。 - format
null|stringTimestampBehavior 属性的 PHPdate()格式。如果为null,则为此设置正确的值,对于value为 null 或value设置为new Expression('NOW()')的情况,即几乎所有用例。只有在真正特殊的情况下,才可能将其设置为其他任何值。默认:null。 - noveltyValues
array分配给novelty的可能值。默认:请参阅源代码。
NoveltyBehavior 还继承了 yii\behaviors\TimestampBehavior 的所有选项。