我在名为basic_salary
的数据库中有列。除了basic_salary
,在特定的表中还有另一列称为exempt_rate
。
现在,我想覆盖例如basic_salary
数据。(如果rate_exempt
是True
,则不需要改变basic_salary
,则如果rate_exempt
是False
,则我需要为其创建计算。
示例:
basic_salary * hours_work * payroll
在不更改数据库中basic_salary
的值的情况下,我如何在每个codeigniter函数上实现它?
在不知道一些细节的情况下(例如,如果你只想显示变量数或将其存储在某个地方;或者如果你需要在多个地方或只在一个地方进行(,你可以这样做:
$calc = ($rate_exempt === true) ? $basic_salary : $basic_salary * $hours_work * $payroll;
通过执行以上操作,$calc
变量将根据$rate_exempt
是否为真取适当的值
如果您需要在许多地方执行此操作,可以在共享模型或自定义帮助程序中包含此代码段,将数据库中的所有数据作为参数传递并返回响应。例如,将其作为助手:
function modifySalary($basic_salary, $exempt, $hours, $payroll)
{
$calc = ($exempt === true) ? $basic_salary : $basic_salary * $hours * $payroll;
return $calc;
}
然后,只需在任何需要的地方加载助手,并使用调用它
modifySalary($basic_salary, $exempt, $hours, $payroll);
您可以在选择中为具有相同名称的字段添加新含义:
SELECT if(rate_exempt = "True", basic_salary, basic_salary * hours_work * payroll) as basic_salary