【发布时间】:2016-06-26 00:19:04
【问题描述】:
我正在从控制器调用一个简单的函数:
flash('my message');
flash 函数位于 App\Http 中的 helpers.php 文件中
function flash($message)
{
$flash = app('App\Http\Flash');
return $flash->message($message);
}
flash 函数调用 Flash 对象
namespace App\Http;
class Flash{
public function message($message)
{
session()->flash('flash_message', $message);
}
}
Composer.json 包括:
"autoload": {
"files": [
"app/Http/helpers.php"
],
运行命令 - composer dump-autoload
页面正在显示 - 调用未定义的函数 App\Http\Controllers\flash()
我尝试了很多东西!即使我在 helpers.php 文件中添加了一个小测试函数,我也无法在控制器中使用它。
这是命名空间问题吗?我不认为我必须在控制器顶部添加 use xxxx; 作为 helpers.php 添加到自动加载和全局?
编辑。
我相信helpers.php文件的注册是这里的关键。我所做的只是向全局文件添加一些功能,但无法从我的控制器中获取它们。我在 helpers.php 文件中添加了一个非常简单的函数,但无法从控制器访问它:我是否需要向控制器添加任何内容才能使用 helpers 文件?
我已经设法通过在控制器方法中包含 helpers.php 文件来完成这项工作:
include(app_path() . '/helpers.php');
flash('my message');
这现在允许我调用该函数。所以自动加载不起作用!有点疑惑……
更新。 我必须将所需的功能放入一个类并调用该类。这现在工作正常。我只是无法让 helpers.php 自动加载任何内容。
【问题讨论】:
标签: laravel laravel-5 laravel-5.2