找不到Laravel 5.2自定义助手



我已经创建了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

上没有找到

试一下,

  1. 在app目录下创建Helpers目录。
  2. 在Helpers目录中创建一个Example.php文件
  3. 在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的更多帮助请点击这里

相关内容

  • 没有找到相关文章

最新更新