yii2-netdisk/models/Share.php

76 lines
2.0 KiB
PHP
Raw Normal View History

2024-02-16 15:13:29 +08:00
<?php
namespace app\models;
use yii\db\ActiveQuery;
use yii\db\ActiveRecord;
2024-02-16 15:13:29 +08:00
/**
* This is the model class for table "share".
*
* @property int $share_id 分享ID
* @property int $sharer_id 分享者ID
* @property string $file_relative_path 文件的相对路径
* @property string $access_code 分享密钥
* @property string $creation_date 分享创建日期
* @property int|null $status 分享是否启用
2024-02-16 15:13:29 +08:00
*
* @property User $sharer
*/
class Share extends ActiveRecord
2024-02-16 15:13:29 +08:00
{
const string SCENARIO_UPDATE = 'update';
2024-02-16 15:13:29 +08:00
/**
* {@inheritdoc}
*/
public static function tableName(): string
2024-02-16 15:13:29 +08:00
{
return 'share';
}
/**
* {@inheritdoc}
*/
public function rules(): array
2024-02-16 15:13:29 +08:00
{
return [
[['file_relative_path', 'access_code'], 'required'],
[['sharer_id', 'status'], 'integer'],
2024-02-16 15:13:29 +08:00
[['creation_date'], 'safe'],
[['file_relative_path'], 'string', 'max' => 255],
[['access_code'], 'string', 'max' => 4],
[['sharer_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::class, 'targetAttribute' => ['sharer_id' => 'id']],
[['access_code'], 'required', 'on' => self::SCENARIO_UPDATE], // 在 'update' 场景中,只验证 'access_code' 字段
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels(): array
2024-02-16 15:13:29 +08:00
{
return [
'share_id' => '分享ID',
'sharer_id' => '分享者ID',
'file_relative_path' => '文件位置',
'access_code' => '访问密码',
'creation_date' => '分享创建日期',
'status' => 'Status',
2024-02-16 15:13:29 +08:00
];
}
/**
* Gets query for [[Sharer]].
*
* @return ActiveQuery
2024-02-16 15:13:29 +08:00
*/
public function getSharer(): ActiveQuery
2024-02-16 15:13:29 +08:00
{
return $this->hasOne(User::class, ['id' => 'sharer_id']);
}
public function getSharerUsername(): ?string
2024-02-17 16:43:39 +08:00
{
return $this->sharer->username;
}
2024-02-16 15:13:29 +08:00
}