52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Modules\Admin\app\Models;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Sprint extends Model
|
|
{
|
|
protected $table = 'sprint';
|
|
protected $fillable = ['name', 'point', 'project_id', 'start_date', 'end_date', 'complete_date'];
|
|
|
|
public function criterias()
|
|
{
|
|
return $this->belongsToMany(Criteria::class, 'sprints_criterias')
|
|
->withPivot('point', 'expect_result', 'actual_result', 'note', "created_by");
|
|
}
|
|
|
|
// Định nghĩa một quan hệ với bảng users thông qua bảng users_criterias
|
|
public function users2()
|
|
{
|
|
return $this->hasManyThrough(
|
|
User::class, // Model đích
|
|
UserCriteria::class, // Model trung gian
|
|
'sprint_id', // Khóa ngoại trong bảng users_criterias
|
|
'email', // Trường để khớp trong bảng users
|
|
'id', // Khóa chính trong bảng sprint
|
|
'user_email' // Trường để khớp trong bảng users_criterias
|
|
);
|
|
}
|
|
|
|
public function users()
|
|
{
|
|
return $this->hasMany(UserCriteria::class)
|
|
->leftjoin('users', 'users.email', '=', 'users_criterias.user_email')
|
|
->leftjoin('criterias', 'criterias.id', '=', 'users_criterias.criteria_id')
|
|
->select(
|
|
'users.id as user_id',
|
|
'users.name as user',
|
|
'users.email as user_email',
|
|
|
|
'criteria_id',
|
|
'users_criterias.point as point',
|
|
'users_criterias.note as note',
|
|
'users_criterias.created_by as created_by',
|
|
|
|
'criterias.name as name',
|
|
'criterias.description as criteria_description',
|
|
);
|
|
}
|
|
}
|