第一时间使用国际奥委会和正面。我试着做一个“团队领袖”的正面,这样我就可以打电话给
Teamleader::getCompaniesByCountry(); 我会发现错误的
不应该静态地调用非静态方法Notflip\Teamleader\Teamleader::getCompaniesByCountry(),假设来自不兼容上下文的$this。
这是我的ServiceProvider
<?php namespace Notflip\Teamleader;
use Illuminate\Support\ServiceProvider;
class TeamleaderServiceProvider extends ServiceProvider {
public function register()
{
$this->app['teamleader'] = $this->app->bind('teamleader', function($app){
return new Teamleader();
});
}
public function boot()
{
//
}
}这是我的Facade
<?php namespace Notflip\Teamleader\Facades;
use Illuminate\Support\Facades\Facade;
class Teamleader extends Facade {
protected static function getFacadeAccessor() { return 'teamleader'; }
}发布于 2015-05-04 19:33:26
您需要调用facade上的方法,而不是实际的类。因此,如果您的类是Notflip\Teamleader\Teamleader,而外观是Notflip\Teamleader\Facades\Teamleader,那么基本上需要调用Notflip\Teamleader\Facades\Teamleader::getCompaniesByCountry()。
很明显你不想这么做。因此,您可以在config/app.php文件中添加一个别名。在“别名”数组中,可以添加:
'TeamLeader' => 'Notflip\Teamleader\Facades\Teamleader'然后你可以直接打电话给\Teamleader::getCompaniesByCountry()
此外,您可能需要将您的服务提供者更改为:
$this->app->bind('teamleader', function($app){
return new Teamleader();
});而不是这样:
$this->app['teamleader'] = $this->app->bind('teamleader', function($app){
return new Teamleader();
});https://stackoverflow.com/questions/30038397
复制相似问题