我有一个使用TranslateBehavior for i18n的CakePHP模型。在大多数情况下,它工作正常,但是当我尝试从CakePHP shell中检索数据时,结果始终是一个空数组。所以这个:
$this->MyModel->find('all')
返回控制器中的大量记录,但shell中没有任何记录。我已经尝试将模型添加到shell的$ uses数组中,并且还通过执行$ this-> MyModel = ClassaRegistry :: init(' MyModel')。我没有在文档中找到任何表明这不应该工作的东西,谷歌搜索没有向其他人透露这个问题(我也在CakePHP IRC中询问过),但我不确定如何调试。
答案 0 :(得分:3)
当从控制器访问时,已经设置了I18n类,并且行为知道选择哪种语言。从shell中没有会话和/或浏览器标识,因此不会选择任何语言。
你可以通过
来解决这个问题Configure::write('Config.language', 'en');
或添加
$this->MyModel->locale = 'en';
在使用相关模型之前到你的shell。