【发布时间】:2013-06-02 04:58:57
【问题描述】:
我在使用 Laravel 创建外观模型类时遇到了一点问题。我关注了http://laravel.com/docs/facades,但我想我错过了一些东西。
我在app/models 中创建了一个名为foo 的文件夹。在那个文件夹中,我有两个文件。
第一个文件(Foo.php):
<?php
namespace Mynamespace;
class Foo {
public function method() {
}
}
?>
第二个文件(FooFacade.php):
<?php
use Illuminate\Support\Facades\Facade;
class Foo extends Facade {
protected static function getFacadeAccessor() { return 'foo'; }
}
?>
然后我将Foo => 'Mynamespace\Foo' 添加到app/config/app.php 中的aliases 数组并运行composer update 和composer dump-autoload。
现在当我尝试运行Foo::method() 时,我得到Non-static method Mynamespace\Foo::method() should not be called statically。我做错了什么?
【问题讨论】:
-
您需要在
config/app.php中设置服务提供者和别名。考虑到别名指向外观类,而不是类本身(它在 laravel 文档中令人困惑)。这样就可以避免非静态错误