当前位置: 首页 > 知识库问答 >
问题:

调用laravel 8中未定义的函数App\Http\Controllers\get\u option()

封锐藻
2023-03-14

我正在尝试将一个Laravel5.7项目转换为8,仍在调试,但无法解决这个特殊问题。

当我运行该项目时,出现“调用未定义函数App\Http\Controllers\get\u option()”错误。

我试过:

  • 将helpers.php位置提供程序更改为控制器

这是App\Http\Controllers\MainpageController中的错误源:

...
        $products_recommendations = Product::select('product.*')

            ->join('product_details', 'product_details.product_id', 'product.id')

            ->where('product_details.show_recommendations', 1)

            ->orderBy('update_date', 'desc')

            ->take(get_option('mainpage_list_product_count'))->get();
...

这是app/Providers/helpers.php文件,它具有get_option()函数:

<?php
use App\Models\Option;
use Illuminate\Support\Facades\Cache;

if (! function_exists('get_option')) {
    function get_option($key) {
        //$allOptions = Cache::rememberForever('allOptions', function() {
        $minute = 60;
        $allOptions = Cache::remember('allOptions', $minute, function() {
            return Option::all();
        });
        
        return $allOptions->where('key', $key)->first()->variable;
    }
}

我该怎么解决这个问题?

注:我在这里将变量和函数名翻译成了英文。

共有1个答案

段良弼
2023-03-14

我再次将我的助手添加到我的composer.json文件:

    "autoload": {
    "files": [
        "app/helpers.php"
    ],

然后输入composer dump autoload。成功了。

这个解决方案以前不起作用,我不得不在composer.json文件中删除并重写它。

还有一个错误,但至少我修复了这个。

 类似资料: