好吧,我在配置文件的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 是有效的回调, 非静态方法 Missing Translation::handler() 不应该是 静态调用
我删除了onMissingTranslation
事件处理程序,它工作正常,所以我怀疑事件处理程序有问题。
这已经是Yii的错误了吗?还是我又做了什么坏事?
更新
这是来自Yii的答案
https://github.com/yiisoft/yii/issues/902#issuecomment-6732258
我希望这对遇到同样问题的人有所帮助
在扩展class
并使用类而不创建Instance
或Object
时,需要将其标记为静态,以便其属性和方法可见。