CakePHP - 无法从 shell 查询具有 TranslateBehvior 的模型

CakePHP - Can't query model that has TranslateBehvior from a shell

我有一个使用 TranslateBehavior for i18n 的 CakePHP 模型。在大多数情况下,它工作正常,但是当我尝试在 CakePHP shell 中从中检索数据时,结果始终是一个空数组。所以这个:

$this->MyModel->find('all')

returns 控制器中有很多记录,但 shell 中没有任何记录。我已经尝试将模型添加到 shell 的 $uses 数组,以及通过执行 $this->MyModel = ClassaRegistry::init('MyModel')。我在文档中没有发现任何表明这不应该起作用的内容,而且谷歌搜索也没有发现任何其他人遇到这个问题(我也在 CakePHP IRC 中询问过),但我不确定如何调试。

当从控制器访问时,I18n 类 已经设置好,行为知道选择哪种语言。 shell 没有会话 and/or 浏览器标识已知,因此不会选择任何语言。

你可以通过输入

来克服这个问题
Configure::write('Config.language', 'en');

或添加

$this->MyModel->locale = 'en';

在使用相关模型之前 shell。