laravel中未定义的变量$ app

时间:2016-12-26 16:28:00

标签: laravel laravel-5.3

我正在尝试在ver 5.3上构建laravel应用程序,我正在创建一个服务提供程序并尝试注册以下内容:

public function register()
{
    $this->checkDomainName();
    $this->app->singleton('domain', function()
    {
        return $this->domain;
    });
}

/**
 * Checking domain status
 */
public function checkDomainName()
{
    $domain = php_sapi_name() == 'cli' ? 'nitseditor.com' : $this->app['request']->server('HTTP_HOST');
    return $domain;
}

现在我通过控制器调用die dump app变量:

namespace Nitseditor\Controller;

use Illuminate\Routing\Controller;
use \App;

class DomainController extends Controller
{
    //

    function index()
    {
        dd($app);
    }
}

我的意思是我正在检查它是否与$app['domain']之类的应用相关联。但它显示未定义的变量应用程序。帮助我。

3 个答案:

答案 0 :(得分:2)

您可以使用返回可用容器实例的app()辅助方法,将其命名为:

dd(app());

在你的情况下,你可以这样做:

app('domain');

答案 1 :(得分:0)

您应该使用app()助手而不是变量。但是在控制器和其他Laravel类中,使用automatic injection

更方便
function index(BindedClass $variable)

答案 2 :(得分:-1)

在控制器的方法范围内定义了$app变量。如果您尝试访问Laravel的IoC容器,则可以使用app()帮助程序功能。

$app = app();

在您的情况下,如果您尝试访问绑定在服务提供商中的'domain',则可以将字符串'domain'作为参数传递给app()

$domain = app('domain');