我已经创建了app/Http/helpers.php
if (!function_exists('getLocation')) {
function getLocation($request)
{
return 'test';
}
我已经添加了文件部分的作曲家。json自动装载
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/"
},
"files": [
"app/Http/helpers.php"
]
},
这是我的控制器:
namespace AppHttpControllers;
use AppJobsChangeLocale;
use AppHttpRequests;
use IlluminateHttpRequest;
use DB;
use Log;
class HomeController extends Controller
{
public function index(Request $request)
{
$data['location'] = getLocation($request);
}
}
当我调用函数在控制器作为getLocation($request);它说"调用未定义的函数AppHttpControllersgetLocation()"
这在我的本地工作很好,但在远程服务器上不行。我在远程服务器中遗漏了什么。已尝试编译器安装和编译器转储自动加载。
更新:helper文件没有在vendor/composer/autoload_files.php
在服务器上,您需要执行:
composer dumpautoload
,因为在vendor/autoload.php
试一下,
- 在app目录下创建Helpers目录。 在Helpers目录中创建一个Example.php文件
在config/app.php文件
为这个文件创建一个别名前:"例子"=>应用助手例子::类,
Example.php中的代码如下:
<?php
namespace AppHelpers;
class Example
{
static function exampleMethod()
{
return "I am helper";
}
}
在控制器文件中使用上面的示例帮助器,如下所示,
<?php
namespace AppHttpControllers;
use AppHelpersExample;
class HomeController extends Controller
{
public function index(Request $request)
{
return Example::exampleMethod();
}
}
在刀片视图文件中使用上面的示例帮助器,如下所示,
<div>{{ Example::exampleMethod()}}</div>
确保Helper.php的结构是正确的…
<?php
//no namespace, no classes
//classes are not helpers
if ( !function_exists('nextStage') ) {
function nextStage($currentStage) {
//if you need to access a class, use complete namespace
return AppModelsStage::where('id',$currentStage)->first()->next_stage;
}
}
关于Laracast的更多帮助请点击这里