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

时间:2015-03-03 16:16:12

标签: cakephp internationalization

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

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

返回控制器中的大量记录,但shell中没有任何记录。我已经尝试将模型添加到shell的$ uses数组中,并且还通过执行$ this-> MyModel = ClassaRegistry :: init(' MyModel')。我没有在文档中找到任何表明这不应该工作的东西,谷歌搜索没有向其他人透露这个问题(我也在CakePHP IRC中询问过),但我不确定如何调试。

1 个答案:

答案 0 :(得分:3)

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

你可以通过

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

或添加

$this->MyModel->locale = 'en';
在使用相关模型之前

到你的shell。