【问题标题】:First Letter Capitalization in CakePHP Model NameCakePHP 模型名称中的首字母大写
【发布时间】:2011-09-25 19:40:19
【问题描述】:

我最近在使用 CakePHP 模型时遇到了问题。型号名称第一个字母的大小写不断变化。例如

$brands = $this->brand->findAllByCompanyId($company);
$list = array();
foreach ($brands as &$brand) {
    $list[] = array(
        'name' => $brand['brand']['name'],
        'id'   => $brand['brand']['id']
    );
}

由于某种原因,键名会更改为

$brand['Brand']['name']
$brand['Brand']['id']

请注意“品牌”一词的大小写变化。有谁知道为什么会发生这种情况,或者如何强制使用特定的大写字母?

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

    其中一个basic principles of CakePHP 是关于following conventions 让生活更轻松。正如上面的@Neal 所说,CakePHP 期望模型大写。坚持将它大写,你会让你的生活更轻松。

    【讨论】:

    • 看起来我的 $uses 行引用了模型的小写名称。它仍然有效,但肯定没有让我的生活更轻松。通过将其设为大写,它似乎已经解决了这个问题。型号名称不再来回切换
    【解决方案2】:

    CakePHP 模型总是在从数据库中选择模型时将其名称大写。
    (我假设$this->brand->findAllByCompanyId($company); 正在做一个查询)

    【讨论】:

    • 看来不是这样。我发布的代码是当前在我的脚本中工作的代码,$brand['brand']['name'] 没有大写字母。但最近我不得不使用 $brand['Brand']['name']。
    【解决方案3】:

    您可以通过在 model 中添加该行来覆盖它。
    $this->name = 'brand';

    【讨论】:

    • 但我会坚持约定并使用“品牌”。像其他人一样:)
    猜你喜欢
    • 2017-04-21
    • 2019-11-21
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    相关资源
    最近更新 更多