【发布时间】:2017-01-02 08:01:26
【问题描述】:
我已经创建了 app/Http/helpers.php
if (!function_exists('getLocation')) {
function getLocation($request)
{
return 'test';
}
我在 composer.json 自动加载中添加了文件部分
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Http/helpers.php"
]
},
这是我的控制器:
namespace App\Http\Controllers;
use App\Jobs\ChangeLocale;
use App\Http\Requests;
use Illuminate\Http\Request;
use DB;
use Log;
class HomeController extends Controller
{
public function index(Request $request)
{
$data['location'] = getLocation($request);
}
}
当我将控制器中的函数调用为 getLocation($request);它说“调用未定义的函数 App\Http\Controllers\getLocation()”
这在我的本地运行良好,但在远程服务器上却不行。我在远程服务器中缺少什么。尝试作曲家安装和作曲家转储自动加载。
更新: 帮助文件未在 vendor/composer/autoload_files.php 中列出
【问题讨论】:
-
您能否发布更多信息,例如来自服务器的控制器 sn-p?根据我从中收集到的信息,这可能是一些愚蠢的事情,例如您忘记更新某些文件或导入命名空间。
-
添加了控制器,但它在我的本地工作并且在服务器上出错。
-
根据我的经验,当这种情况发生时(服务器-本地主机的差异),这两种环境中的情况会有所不同。要么是辅助文件丢失,要么是不同的作曲家文件......
标签: laravel composer-php helper