错误调用未定义函数 App\Http\Controllers\Admin\get_option()
Error Call to undefined function 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()
不是一个函数。这意味着它正在寻找当前命名空间中的函数。你 include/require 是不是走错路了?
创建助手class
我目前没有 Laravel7 个项目,但我在 Laravel5 中所做的是创建助手 classes 而不是普通函数。以您为例:
将其另存为 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
。
将函数设为 public 函数并使用 self::function_name();
调用函数
你好,我将 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()
不是一个函数。这意味着它正在寻找当前命名空间中的函数。你 include/require 是不是走错路了?
创建助手class
我目前没有 Laravel7 个项目,但我在 Laravel5 中所做的是创建助手 classes 而不是普通函数。以您为例:
将其另存为 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
。
将函数设为 public 函数并使用 self::function_name();
调用函数