Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不应静态调用Laravel 4.1 Facade非静态方法_Php_Laravel 4 - Fatal编程技术网

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

Php 不应静态调用Laravel 4.1 Facade非静态方法,php,laravel-4,Php,Laravel 4,我试图在Laravel4.1中创建一个外观。我已经创建了facade、服务提供者和类,但没有任何效果。我看了很多“如何做”,包括Laracasts定制外观的高级视频。无论我尝试了多少次,最终都会遇到一个例外:不应静态调用非静态方法Custom\Helpers\Helper::doSomething() 这是我的密码 HelpersServiceProvider.php <?php namespace Custom\Helpers; use Illuminate\Support\Servi

我试图在Laravel4.1中创建一个外观。我已经创建了facade、服务提供者和类,但没有任何效果。我看了很多“如何做”,包括Laracasts定制外观的高级视频。无论我尝试了多少次,最终都会遇到一个例外:不应静态调用
非静态方法Custom\Helpers\Helper::doSomething()

这是我的密码

HelpersServiceProvider.php

<?php namespace Custom\Helpers;

use Illuminate\Support\ServiceProvider;

class HelpersServiceProvider extends ServiceProvider {

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

}
<?php namespace Custom\Facades;

use Illuminate\Support\Facades\Facade;


class Helper extends Facade {

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

}
<?php namespace Custom\Helpers;
class Helper {
     public function doSomething()
     {
        return 'Hello';
     }
}
然后,当我试图通过静态调用(是的,我知道它不是真正的静态)或直接通过服务提供商访问它时,我会得到异常错误


这件事让我摸不着头脑…

看起来您的类(或文件)名称不正确:

HelpersFacade.php


此外,您的
Helper
类位于
Helpers.php
中。这些也需要匹配。

我假设您运行了
dump autoload
等等?您的假设是正确的;-)我将这两个文件重命名为Helper.php,运行了composer,我仍然收到非静态方法Custom\Helpers\Helper::doSomething()不应被静态调用。如果在类外的facade文件中放置了一个die语句,它会被命中吗?另外,请确保在更改文件名后重新转储自动加载hi watcher,我始终转储:)也就是说,我确实在Helper.php facade文件中添加了die,但没有命中,而是得到了静态异常。您应该修复类名,然后尝试我前面的答案。
'Custom\Helpers\HelpersServiceProvider',

'Helper'         => 'Custom\Facades\Helper',
class Helper extends Facade {