1

好吧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”中的 where 来测试它根本没有任何翻译。这会产生一个错误

call_user_func() 期望参数 1 是一个有效的回调,非静态方法 MissingTranslation::handler() 不应被静态调用

我删除了onMissingTranslation事件处理程序,它工作正常,所以我怀疑事件处理程序有问题。

这是否已经是 Yii 的一个错误?还是我又做了坏事?

更新

这是Yii的回答

https://github.com/yiisoft/yii/issues/902#issuecomment-6732258

我希望这对遇到同样问题的人有所帮助

4

1 回答 1

1

当您扩展 aclass并使用一个类而不创建一个时,Instance或者Object您需要将其标记为静态,以便其属性和方法变得可见。

于 2012-07-03T15:42:47.273 回答