我正在尝试在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']
之类的应用相关联。但它显示未定义的变量应用程序。帮助我。
答案 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');