【问题标题】:Why can I not ClassRegistry::init() my CakePHP model?为什么我的 CakePHP 模型不能使用 ClassRegistry::init()?
【发布时间】:2018-06-06 10:09:21
【问题描述】:

我对框架并不陌生,并且经常使用 Symfony,但是我有一个 CakePHP 2.4 的旧版本,我现在必须维护它并且遇到了问题。我的代码是这样的:

function aff($user=null,$pid=null) {
    if (empty($user) || empty($pid)) $this->redirect('/');
    $userModel =& ClassRegistry::init('User');
    $productModel =& ClassRegistry::init('Product');
    $granularModel =& ClassRegistry::init('Granular');

    $this->autoRender = false;
    $temp = array(
        'user' => $user,
        'pid' => $pid
    );
    $granularModel->save($temp);
}

这是我的控制器内部的一个函数。 User 和 Product 模型正在 ClassRegistry::init 中正常工作,但我的 Granular 模型会导致页面加载并显示“在此服务器上未找到请求的地址 XXXX”的消息。这是我的模型:

<?php
    class Granular extends AppModel {
        var $name = 'Granular';
    }
?>

为什么会导致找不到路由?如果我放一个“echo 'Hello'; exit();”就在 $productModel =& ClassRegistry::init('Product'); 行之后它加载路线就好了。我感到失落。请帮忙。 TIA

【问题讨论】:

  • 当您在Granular init 行之后放置停止会发生什么?您是否测试过触发它的那条线?在任何情况下,启用调试模式并重试,还要检查日志。如果您没有找到任何东西,请连接一个调试器并在该行设置一个断点,然后手动单步执行调用堆栈以了解究竟发生了什么。
  • @ndm 如果我在 Granular 行之后放置一个断点,我会收到找不到路由的 404 错误。在用户和产品行中加载的工作正常。破坏它的是粒度线。我会尝试调试模式。你是怎么设置的?

标签: php database cakephp model


【解决方案1】:

由于某些原因,今天打开 Configure::write('debug', 1);在 app/config/core.php 中,它突然开始工作。我现在猜测这一定是某种缓存问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 2011-08-08
    • 2014-03-21
    • 1970-01-01
    相关资源
    最近更新 更多