【发布时间】:2015-05-28 00:15:18
【问题描述】:
我正在尝试在 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',
然后,当我尝试通过静态调用(是的,我知道它不是真正静态的)或直接通过服务提供商访问它时,我得到了异常错误。
在这个问题上摸不着头脑......
【问题讨论】:
-
我假设你跑了
dump-autoload之类的? -
你的假设是正确的 ;-)