Yii2 自定义组件无法识别 getter 或 setter 属性?
Yii2 custom component not recognizing getter or setter properties?
我有一个处理应用程序选项的自定义组件。
出于某种原因,当我像这样访问方法时:
Yii::$app->option->user('setting_name');
我收到以下错误:
Calling unknown method: app\models\Option::user()
这是 class 的部分片段:
namespace app\models;
use Yii;
use yii\base\Component;
class Option extends Component
{
public function getUser($key)
{
$options = self::getAllOptions('user');
return $options[$key];
}
public function setUser($key, $value)
{
$return = self::getAllOptions('user', true);
$model = $return['model'];
$options = $return['options'];
// update the specific option
$options[$key] = $value;
self::setAllOptions('user', $options, $model);
}
}
这里是应用配置中的组件注册:
...
'components' => [
'option' => [
'class' => 'app\models\Option',
],
],
...
为什么它不能使用 getter 和 setter 方法识别 属性?
你应该简单地使用:
Yii::$app->option->getUser('setting_name');
您的 getUser()
和 setUser()
函数不是 getter/setter 函数,因为 getter 没有任何参数,而 setter 只有一个参数。
即使它是一个有效的 getter,你也不能像这样使用它,getters 定义的属性可以像 class 变量一样使用,而不是函数!
阅读更多:http://www.yiiframework.com/doc-2.0/guide-concept-properties.html
我有一个处理应用程序选项的自定义组件。
出于某种原因,当我像这样访问方法时:
Yii::$app->option->user('setting_name');
我收到以下错误:
Calling unknown method: app\models\Option::user()
这是 class 的部分片段:
namespace app\models;
use Yii;
use yii\base\Component;
class Option extends Component
{
public function getUser($key)
{
$options = self::getAllOptions('user');
return $options[$key];
}
public function setUser($key, $value)
{
$return = self::getAllOptions('user', true);
$model = $return['model'];
$options = $return['options'];
// update the specific option
$options[$key] = $value;
self::setAllOptions('user', $options, $model);
}
}
这里是应用配置中的组件注册:
...
'components' => [
'option' => [
'class' => 'app\models\Option',
],
],
...
为什么它不能使用 getter 和 setter 方法识别 属性?
你应该简单地使用:
Yii::$app->option->getUser('setting_name');
您的 getUser()
和 setUser()
函数不是 getter/setter 函数,因为 getter 没有任何参数,而 setter 只有一个参数。
即使它是一个有效的 getter,你也不能像这样使用它,getters 定义的属性可以像 class 变量一样使用,而不是函数!
阅读更多:http://www.yiiframework.com/doc-2.0/guide-concept-properties.html