如何访问组件中组件的配置值?
配置/ main.php
return [
...
'components' => [
...
'mycomponent' => [
'class' => 'common\components\MyComponent',
'myConfigValue' => 'someValue',
],
...
如何访问组件中的someValue
?
我试图在类中声明变量public $someValue
,但它没有自动填充。
编辑:
这是我的组件:
namespace common\components;
use Yii;
use yii\base\Component;
class myComponent extends Component
{
public function init()
{
parent::init();
}
public $someValue;
public function getSomeValue()
{
return $someValue
}
}
答案 0 :(得分:0)
根据this guide,您可以在创建自己的组件时覆盖__construct()
方法。
然后,您可以按如下方式设置属性值:
public function __construct($config = [])
{
parent::__construct($config);
}
同样在您的方法getSomeValue()
中,您需要返回$this->someValue
而不是$someValue
答案 1 :(得分:0)
事实上,您快要到了……这个问题使我找到了答案。
在组件中定义的键=>值(即'myConfigValue'=>'someValue') 将被映射到您的组件类的属性。 请注意,没有将属性映射到b的键将引发错误。
class () ...
public $version = null;
public function __construct($config = [])
{
// ... initialization before configuration is applied
$this->config = $config;
// use reflection
// will map $config keys to attributes
// e.g. 'version' => 1 mapped to $this->version
parent::__construct($config);
}