我在配置文件的components
部分中有这样的配置
'components'=>array(
'messages' => array(
'onMissingTranslation' => array('MissingTranslation','handler'),
),
);
现在这是我的MissingTranslation
班级
class MissingTranslation extends CApplicationComponent{
public function handler($event){
$msg= $event->message;
}
}
现在我使用Yii:t("hello");
测试了它,其中“hello”根本没有任何翻译。这会产生错误
call_user_func()期望参数1是有效的回调, 非静态方法MissingTranslation :: handler()不应该是 静态呼叫
我删除了onMissingTranslation
事件处理程序,它运行正常,所以我怀疑事件处理程序有问题。
这是Yii的错误吗?或者我又做了一件坏事?
更新
这是Yii的回答
https://github.com/yiisoft/yii/issues/902#issuecomment-6732258
我希望这有助于有人遇到同样的问题
答案 0 :(得分:1)
在扩展class
并使用类而不创建Instance
或Object
时,您需要将其标记为静态,以便其属性和方法可见。