laravel - 错误调用未定义函数 App\Http\Controllers\Admin\get_option()
问题描述
你好,我将 laravel 5.4 更新到 5.7 到 5.8 到 6 并精细到 7.14,我看到 get_option 错误
public function user()
{
$userCount = User::where('admin','0')->count();
$adminCount = User::where('admin','1')->count();
$buyerCount = Sell::distinct('buyer_id')->count('buyer_id');
$sellerCount = Sell::distinct('user_id')->count('user_id');
$dayRegister = User::where('create_at','>',strtotime('-'.get_option('chart_day_count',10).' day')+12600)->get();
return view('admin.report.user',['userCount'=>$userCount,'adminCount'=>$adminCount,'buyerCount'=>$buyerCount,'sellerCount'=>$sellerCount,'dayRegister'=>$dayRegister]);
}
在 laravel 5.4 我在辅助方法中定义
function get_option($option,$default = null){
if($result = \App\Models\Option::where('option',$option)->value('value'))
return $result;
else
return $default;
}
但在 laravel 7 中不起作用!
解决方案
检查您的命名空间
错误告诉你这App\Http\Controllers\Admin\get_option()
不是一个函数。这意味着它正在当前命名空间中寻找函数。您是否从错误的路径中包含/要求它?
创建一个帮助类
我目前没有 Laravel7 项目,但我在 Laravel5 中所做的是创建辅助类而不是普通函数。按照你的例子:
另存为app/Helpers/OptionsHelper.php
或类似。
<?php
namespace App\Helpers;
class OptionsHelper
{
/**
* Private constructor, `new` is disallowed by design.
*/
private function __construct()
{ }
public static function getOption($option, $default = null){
if($result = \App\Models\Option::where('option', $option)->value('value')) {
return $result;
}
else {
return $default;
}
}
}
导入这个助手use App\Helpers\OptionsHelper
并调用OptionsHelper::getOption
而不是get_option
.
推荐阅读
- javascript - Javascript - 我如何从给定的周数和年份获取一周中的每个日期
- wordpress - wordpress url面临问题
- c - 没有在 Makefile 中创建目标的规则
- azure - Terraform 脚本将证书从数据源 Key Vault 复制到新的 Key Vault
- java - Powermockito 不模拟静态方法
- python - Google Content API custombatch 产品无法正常工作
- php - 在 Foreach 中使用关联数组常量
- python - Python中基于条件的拆分列表
- amazon-web-services - 如何使用 SAM 模板更改 AWS API Gateway 默认响应?
- python - 数据帧和子数据帧之间的余弦相似度