我想知道在控制器中使用附加功能的最佳位置是什么。这是一个示例:
public function store(CreateServiceRequest $request)
{
function getMonth($value)
{
if ($value == 1)
{
return 1;
} else
if ($value == 2)
{
return 3;
} else
if ($value == 3)
{
return 6;
} else
return 0;
}
function getYear($value)
{
if ($value == 4)
{
return 1;
} else
if ($value == 5)
{
return 2;
} else
if ($value == 6)
{
return 3;
} else
return 0;
}
function getTax($price, $vat)
{
$tax = ($vat/100*$price);
return $tax;
}
$input = Request::all();
$months = getMonth($input['period']);
$years = getYear($input['period']);
$tax = getTax($input['price_net'], $input['vat']);
$input['price_vat'] = $tax;
$input['price_gross'] = $input['price_net'] + $tax;
$input['period_end'] = Carbon::createFromFormat('Y-m-d', $input['period_start'])->addYears($years)->addMonths($months)->toDateString();
return $input;
}
如您所见,在store方法内部,我编写了三个函数:
getMonth,getYear和getTax。该方法首先获取所有请求,然后我需要创建一些新变量-例如,我得到了$input['period']
并使用它来制作$input['period_end']
。因此,我不会更改$input['period']
的值,而是创建一个新的$input['period_end']
。如果仅更改现有变量,则使用增幅器...那么问题是我应该将getMonth, getYear and getTax
函数的代码放在哪里?存储方法似乎一团糟...
答案 0 :(得分:2)
制作helpers.php
(在.env
文件所在的根目录中)。
if (! function_exists('helper_function')) {
function helper_function()
{
return 'hello';
}
}
,然后在您的composer.json
中自动加载它:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"files": [
"helpers.php"
]
},
现在您可以在代码库中的任何地方调用您的辅助函数