helper函数base_path()失败


Laravel helper function base_path() failing

我正在模型类中访问Laravel的辅助函数base_path()。我正在运行Laravel 4.1.23

我得到以下错误:

    PHP Fatal error:  Call to a member function make() on a non-object in /Applications/mampstack-5.4.23-0/frameworks/laravel/vendor/laravel/framework/src/Illuminate/Support/helpers.php on line 492

奇怪的是,我在phpunit中测试了函数调用,它工作得很好。如有任何帮助,不胜感激。

我的项目有以下依赖项:

"require": {
        "laravel/framework": "4.1.*",
        "cpliakas/git-wrapper": "1.1.*",
        "rmccue/requests": "v1.6.0",
        "phpseclib/phpseclib": "0.3.*"
    }

Laravel告诉你它不能在非对象上执行make()。如果是这一行:

 app()->make('path.base').($path ? '/'.$path : $path);

非对象是函数

的返回值
 app()

可能已被您的某个包或自己的帮助程序覆盖。下面是创建这个函数的代码:

if ( ! function_exists('app'))
{
    /**
     * Get the root Facade application instance.
     *
     * @param  string  $make
     * @return mixed
     */
    function app($make = null)
    {
        if ( ! is_null($make))
        {
            return app()->make($make);
        }
        return Illuminate'Support'Facades'Facade::getFacadeApplication();
    }
}

如你所见,Laravel不会创建它,除非它不存在。尝试执行:

var_dump( app() );

在你的模型中看看你有什么回报。必须以

开头
object(Illuminate'Foundation'Application)[2]
  protected 'booted' => boolean true
  protected 'bootingCallbacks' => 
    array (size=0)

如果它不是Illuminate'Foundation'Application的对象,试着找到app()函数在哪里并停止使用它