我正在尝试将匿名函数分配给数组键:
const rules = [
'service_level' => function (&$parameter) {
$hasMoreThanOneStore = Places::whereIn('type_store', [2, 3])->count() > 0 ? true : false;
if (!$hasMoreThanOneStore ) {
unset($parameter['distribution_center']);
}
},
];
但是,当我运行上面的代码时,我会收到一条FatalErrorException
消息Constant expression contains invalid operations
。
为什么?
这是一种在租户中为某些参数设置规则的方法,因此它不会将业务规则传播到任何地方。用例是:
public function getParameterByKey(string $key, bool $default = true): Array
{
//Get default parameter stored in a constant array
$parameter = ParameterEnum::PARAMETER[$key];
//Execute rule on that parameter
call_user_func(ParameterEnum::RULES[$key], $parameter);
}
因此,当您调用时,getParameterByKey('service_level')
您将获得已应用所有规则的参数。