2021-11-23 13:13:19 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace common\models;
|
|
|
|
|
2021-11-24 13:05:12 +03:00
|
|
|
use yii\db\ActiveQuery;
|
2021-11-23 13:13:19 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* This is the model class for table "task_user".
|
|
|
|
*
|
|
|
|
* @property int $id
|
|
|
|
* @property int $task_id
|
2023-04-25 01:32:15 +03:00
|
|
|
* @property int $user_id
|
2021-11-23 13:13:19 +03:00
|
|
|
*
|
2023-01-18 15:30:38 +03:00
|
|
|
* @property ProjectTask $task
|
2023-11-10 15:55:01 +03:00
|
|
|
* @property User $user
|
2021-11-23 13:13:19 +03:00
|
|
|
*/
|
2023-01-18 15:30:38 +03:00
|
|
|
class ProjectTaskUser extends \yii\db\ActiveRecord
|
2021-11-23 13:13:19 +03:00
|
|
|
{
|
|
|
|
/**
|
|
|
|
* {@inheritdoc}
|
|
|
|
*/
|
|
|
|
public static function tableName()
|
|
|
|
{
|
2023-01-18 15:30:38 +03:00
|
|
|
return 'project_task_user';
|
2021-11-23 13:13:19 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritdoc}
|
|
|
|
*/
|
|
|
|
public function rules()
|
|
|
|
{
|
|
|
|
return [
|
2023-04-25 01:32:15 +03:00
|
|
|
[['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']],
|
2023-01-18 15:30:38 +03:00
|
|
|
[['task_id'], 'exist', 'skipOnError' => true, 'targetClass' => ProjectTask::className(), 'targetAttribute' => ['task_id' => 'id']],
|
2021-11-23 13:13:19 +03:00
|
|
|
];
|
|
|
|
}
|
|
|
|
|
2023-04-25 01:32:15 +03:00
|
|
|
/**
|
|
|
|
* @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 ?? '';
|
|
|
|
}
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
2021-11-23 13:13:19 +03:00
|
|
|
/**
|
|
|
|
* {@inheritdoc}
|
|
|
|
*/
|
|
|
|
public function attributeLabels()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
'id' => 'ID',
|
2021-11-24 13:05:12 +03:00
|
|
|
'task_id' => 'Задача',
|
2023-04-25 01:32:15 +03:00
|
|
|
'user_id' => 'Сотрудник',
|
2021-11-23 13:13:19 +03:00
|
|
|
];
|
|
|
|
}
|
|
|
|
|
2023-04-25 01:32:15 +03:00
|
|
|
public function getUser()
|
2021-11-23 13:13:19 +03:00
|
|
|
{
|
2023-04-25 01:32:15 +03:00
|
|
|
return $this->hasOne(User::class, ['id' => 'user_id']);
|
2021-11-23 13:13:19 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2021-11-24 13:05:12 +03:00
|
|
|
* @return ActiveQuery
|
2021-11-23 13:13:19 +03:00
|
|
|
*/
|
|
|
|
public function getTask()
|
|
|
|
{
|
2023-01-18 15:30:38 +03:00
|
|
|
return $this->hasOne(ProjectTask::className(), ['id' => 'task_id']);
|
2021-11-23 13:13:19 +03:00
|
|
|
}
|
|
|
|
}
|