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|string
TimestampBehavior 属性的 PHPdate()
格式。如果为null
,则为此设置正确的值,对于value
为 null 或value
设置为new Expression('NOW()')
的情况,即几乎所有用例。只有在真正特殊的情况下,才可能将其设置为其他任何值。默认:null
。 - noveltyValues
array
分配给novelty
的可能值。默认:请参阅源代码。
NoveltyBehavior 还继承了 yii\behaviors\TimestampBehavior 的所有选项。