laravel - 在 Laravel 6 中执行公式而不每次都重复公式的正确方法是什么?
问题描述
在数据库中,我有每个员工的薪水。
我需要计算出从工资中扣除多少税,但我认为将其硬编码到每个视图中是不正确的,比如......
{{($bob->salary - 12,000) * 0.2}}
这显然是混乱和重复的。
我认为我需要做的是创建一个函数,我可以在其中简单地提供 Bob 的薪水,它计算税收并返回值。
就像是...
public function taxPayable($salary){
$taxThreshold = 12,000;
$taxRate = 0.2;
if($salary >= $taxThreshold){
$taxPayable = ($salary - $taxThreshold) * $taxRate;
} else {
$taxPayable = 0;
}
return $taxPayable;
}
那么简单..
{{Taxcalculator::taxPayable($bob->salary)}}
这样的事情可能吗?我会将函数放在哪里,在控制器或模型中?显然代码不起作用,只是为了展示我想要实现的目标,只是想知道我将如何实现它,这可能吗?谢谢。
解决方案
您可以创建一个自定义 Helper 类并在 Controller 中使用它来执行相同的操作:
第 1 步:创建您的 Helpers(或其他自定义类)文件并为其提供匹配的命名空间。编写你的类和方法:
<?php // Code within app\Helpers\Helper.php
namespace App\Helpers;
class Helper
{
public static function taxPayable($salary)
{
// perform your calculation here
return $taxPayable;
}
}
第 2 步:创建别名:
<?php // Code within config/app.php
'aliases' => [
...
'Helper' => App\Helpers\Helper::class,
...
第三步:composer dump-autoload
在项目根目录下运行
第 4 步:在 Laravel 应用程序的任何地方使用这个类:
<?php // Code within app/Http/Controllers/SomeController.php
namespace App\Http\Controllers;
use Helper;
class SomeController extends Controller
{
public function __construct()
{
Helper::taxPayable($bob->salary);
}
甚至您也可以在视图中使用它,例如:
{{Helper::taxPayable($bob->salary);}}
推荐阅读
- dll - 导入 pytorch 时缺少 dll
- python - 如何使用/解包所有 **kwargs 作为条件
- scheme - What is the purpose of returning function from function?
- azure - 签名不匹配。使用的签名字符串是 rl
- apache - 如何将 URL 的一部分从大写变为小写?
- tensorflow - 将元数据传递给自定义损失函数
- javascript - 当我输入我设置为的变量时,我无法分配随机数的函数出现
- python-3.x - 更改每个 CSV 文件值
- java - 使用 saxon 作为库编写 XML
- flutter - 如何正确收听短信代码颤动