设置 Maximum leave employee 3 表

Set Maximum leave employee 3 tables

我有 3 个表是这样的

Employee Table
id | EmpId | Name |    
1  |  N1   |  A   |
2  |  N2   |  B   |
3  |  N3   |  C   |

Leave Table
id | EmpId | applydate  | startdate  | daysleave | reason   | status   |
1  |  N2   | 2016-08-25 | 2016-08-25 |     4     | vacation | Approved |

Setting Table
id |   var    | val | valdef | status |
1  | MaxLeave | 12  |   12   |    1   |

每位员工的最长休假时间为 12 天,取自设置 Table。
如果 daysleave = 4,那么 maxleave 应该还剩 8 天。 我是怎么做到的?我应该在 Employee Table 上添加新字段吗?
预期结果:

您可以在模型中创建获取函数来检索您需要的信息示例:

    public function getDaysOfLeaveLeft() {
        // query for the data you need and return days left
        return $days; 
    }

然后在视图中显示它

<?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'daysOfLeaveLeft',
        ],
    ]) ?>

编辑

全功能

public function getDaysOfLeaveLeft() {
            $models = LeaveTable::findAll(['EmpId' => $this->EmpId]);
            $leave = 0;
            foreach ($models as $model) {
                $leave += $model->daysleave;
            }
            $setting = Setting::find(['var' => 'MaxLeave']);
            return $setting->val - $leave;
        }