【发布时间】:2017-02-06 09:23:22
【问题描述】:
class Controller extends BaseController
{
use AuthorizesRequests, AuthorizesResources, DispatchesJobs, ValidatesRequests;
private $host;
private function __construct()
{
$environment = App::environment();
if ($environment == "local"){
$this->host = config('customs.localHost');
}
else if ($environment == "prod"){
$this->host = config('customs.productionHost');
}
}
public function getHost()
{
return $this->host;
}
}
上面是我在 Laravel 中的控制器。这是主控制器,我在其他控制器类中扩展了这个控制器。基本上我想在这个控制器中创建一个方法,根据我当前的环境返回当前主机。
我正在从其他控制器调用函数 getHost(),但是我得到了 null。
现在 __construct() 中的代码,如果我把它放在 getHost() 方法中它可以工作。但是我的问题是为什么 __construct() 中的代码没有被执行?
【问题讨论】:
-
您的构造函数必须是公共的,或者由类本身调用(例如在单例中)。
-
我已经公开了,但是代码仍然没有被执行。
-
我认为需要在构造函数方法上传递参数
标签: php laravel constructor controller