helper函数未加载laravel 5-调用未定义的函数



我在Laravel 5中加载助手文件并从视图调用函数时遇到问题。以下是我如何尝试在L5项目中设置助手的快速概述。

  1. 在app/Http中创建了一个helpers.php文件
  2. helpers文件包含一个基本函数,用于生成页面标题。

    public function full_title($title)
    {
    $base_title = 'Social Tracking Application';
    if (isset($title) && $title != ''){
    $comp_title = $title . " | " .  $base_title;    
    } else {
    $comp_title = $base_title;
    }
    return $comp_title;
    }
    
  3. 更新了composer.json以自动加载新的helpers文件。

    "autoload": {
    "classmap": [
    "database"
    ],
    "psr-4": {
    "App\": "app/"
    },
    "files":["app/Http/helpers.php"]
    

    },

  4. 从终端运行composer dump autoload。

在这些步骤之后,我觉得我可以从视图和控制器中使用我的助手。因此,我在主布局视图中调用了我的新助手函数,方法如下:

<title> full_title($title)  </title>

然而,当我导航到任何页面时,我都会收到一个对Undefined Function full_title的致命错误消息调用。(请注意,消息通常在标题栏中,所以我将其移动到正文标记中以查看错误消息)。

我不知道我做错了什么,我见过其他人以类似的方式使用自定义帮助程序文件的例子,但我的似乎不起作用,我是不是遗漏了一些明显的东西?

我在经营Homestead。

完整的代码库:https://github.com/n1k41l/SocialTrak/tree/middleware-currentUser

我自己解决了这个问题,问题是我将Helpers文件创建为php类。helpers文件应该只是一个php文件,包含函数,而不是一个包含函数的类。。。(一旦我发现了明显的错误:S)。

我的问题是在helper.php文件中使用了namespace。基本上,它没有类,没有命名空间,只是一些简单的函数,你想放在那里

在视图或控制器中调用函数时,可能需要在函数前面使用类名,例如:

Helper::my_function()

我发现我在某个时候也遇到了这个问题,我把我的助手放在了app/helpers/functions.php下,而不是app/Http/helpers.php下。把它们移到后者会让一切都开始正常工作。

相关内容

  • 没有找到相关文章

最新更新