【问题标题】:find result structure changed once migrate to php 5.4迁移到 php 5.4 后发现结果结构发生了变化
【发布时间】:2014-10-15 02:36:28
【问题描述】:

这是我的问题:在 PHP 5.3 系统上使用 cakePHP,当我们升级到 php 5.4 时,查找结果的结构发生了变化:

例如,在查找后有一个模型“Foo”映射一个表“foo”,列在“Foo”索引下,现在它在“foo”下(注意大写的区别)

代码是由一个不再在这里的人编写的,我是 cakePHP 的新手,所以很难调试...

注意:我们使用的是 cakephp 2.3,我们迁移到 2.5 并没有解决问题

在类属性中,它是这样配置的:

public $useTable = 'Foo';

【问题讨论】:

  • 我只是在这里猜测,因为我现在无法对其进行测试,但可能是为了避免可能的歧义而进行了小写,因为模型和表的 Foo 都会导致查询像SELECT `Foo`.`title` FROM `Foo` AS `Foo` ....,不确定是否有任何受支持的 DBMS/驱动程序有问题。您是否尝试过将$useTable 中的名称小写,因为您的实际表名似乎是小写的?
  • 是的,我试过了,没用。我不得不添加一个大写的别名。

标签: cakephp model php-5.4 cakephp-2.5


【解决方案1】:

之前的开发者没有遵循 cakePHP 命名约定,所以

public $useTable = 'Foo';

是为了避免表名非复数的问题, 我不得不添加

public $alias  = 'Foo';

为了让第一个字母大写,我不知道为什么它在没有这个的 PHP 5.3 下是大写的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    相关资源
    最近更新 更多