guild/common/models/ProjectTaskUser.php
2023-11-10 15:55:01 +03:00

83 lines
1.9 KiB
PHP

<?php
namespace common\models;
use yii\db\ActiveQuery;
/**
* This is the model class for table "task_user".
*
* @property int $id
* @property int $task_id
* @property int $user_id
*
* @property ProjectTask $task
* @property User $user
*/
class ProjectTaskUser extends \yii\db\ActiveRecord
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'project_task_user';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['task_id', 'user_id'], 'required'],
['user_id', 'unique', 'targetAttribute' => ['task_id', 'user_id'], 'message' => 'Уже закреплён(ы) за задачей'],
[['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
[['task_id'], 'exist', 'skipOnError' => true, 'targetClass' => ProjectTask::className(), 'targetAttribute' => ['task_id' => 'id']],
];
}
/**
* @return string[]
*/
public function fields(): array
{
return [
'id',
'task_id',
'user_id',
'fio' => function () {
return $this->user->userCard->fio ?? $this->user->username;
},
'avatar' => function () {
return $this->user->userCard->photo ?? '';
}
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'task_id' => 'Задача',
'user_id' => 'Сотрудник',
];
}
public function getUser()
{
return $this->hasOne(User::class, ['id' => 'user_id']);
}
/**
* @return ActiveQuery
*/
public function getTask()
{
return $this->hasOne(ProjectTask::className(), ['id' => 'task_id']);
}
}