【问题标题】:CakePHP - Can't query model that has TranslateBehvior from a shellCakePHP - 无法从外壳查询具有 TranslateBehvior 的模型
【发布时间】:2015-05-04 09:18:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: cakephp internationalization


    【解决方案1】:

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

    你可以通过放置来克服这个问题

    Configure::write('Config.language', 'en');
    

    或添加

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

    在使用相关模型之前到您的外壳。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      相关资源
      最近更新 更多