php - Laravel 辅助函数 base_path() 失败

标签 php laravel mamp bitnami

我在模型类中访问 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()函数在哪里并停止使用它。

关于php - Laravel 辅助函数 base_path() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22393434/

相关文章:

php - 无法通过ajax从mysql查询读取json元素

php - 如何使用 php 在 Amazon api 中访问超过 10 个项目的详细信息?

.htaccess - 如何将所有请求重定向到 laravel 5 中的 public/文件夹

macos - MAMP PEAR 配置指向本地目录

mysql - phpMyAdmin 是否有内置安全性

php - youtube 怎么会有这样的 URL?

php - Laravel 5.2 Eloquent ORM hasManyThrough

php - 生日前剩余的天数 - laravel - carbon

php - Laravel 5.1 Cookie 问题

php - MAMP 找不到文件夹