Laravel 4.1 Facade非静态方法不应该静态调用

时间:2015-03-24 15:35:16

标签: php laravel-4

我试图在laravel 4.1中创建一个外观。我创建了门面,服务提供商和班级,但无济于事。我跟随了很多"如何""包括Laracasts定制外墙的高级视频。无论我尝试多少次,我都会以Non-static method Custom\Helpers\Helper::doSomething() should not be called statically

为例

这是我的代码......

HelpersServiceProvider.php

<?php namespace Custom\Helpers;

use Illuminate\Support\ServiceProvider;

class HelpersServiceProvider extends ServiceProvider {

    public function register()
    {
        $this->app->bind('trial','Custom\Helpers\Helper');
    }

}

HelpersFacade.php

<?php namespace Custom\Facades;

use Illuminate\Support\Facades\Facade;


class Helper extends Facade {

    protected static function getFacadeAccessor()
    {
        return 'trial';
    }

}

Helpers.php

<?php namespace Custom\Helpers;
class Helper {
     public function doSomething()
     {
        return 'Hello';
     }
}

我将服务提供商添加到我的app.php文件并注册外观别名

'Custom\Helpers\HelpersServiceProvider',

'Helper'         => 'Custom\Facades\Helper',

然后当我尝试通过静态调用(是的,我知道它不是非常静态)或通过服务提供商直接访问它时,我得到异常错误。

抓住这个......

1 个答案:

答案 0 :(得分:0)

看起来你的名字(或文件)命名不正确:

  

HelpersFacade.php

class Helper extends Facade {

此外,您的Helper课程位于Helpers.php。那些也需要匹配。