Cakephp错误:发生了内部错误

时间:2013-11-30 17:08:55

标签: cakephp internal-server-error

我在cakephp中有一些产生错误的代码。

这是PHP控制器:

$this->loadModel( 'Vote' ); //Newly added by amit start
$vote=$this->Vote->getVote($id,$uid);
$this->set('vote',$vote);
$voteCount = count($vote);
$this->set('voteCount',$voteCount);

$voteShow = $this->Vote->find('all', array(
    'fields' => array('SUM(Vote.score)   AS score','count(id) as countId'),
     'conditions'=>array('Vote.type_id'=>$id),
));
$this->set('voteShow',$voteShow);

模特:

public function getVote($id,$uid) {
    if (empty($conditions))
        $conditions = array('Vote.type' => 'blog',
                            'Vote.type_id' => $id,
                            'Vote.user_id' => $uid);

    $users = $this->find('all', array('conditions' => $conditions,
        'order' => 'Vote.id desc'
    ));
    return $users;
}

该代码产生此错误:

Error : An internal error has occurred

这个错误是什么意思?

3 个答案:

答案 0 :(得分:10)

我在core.php中启用了调试模式:Configure::write('debug', 2);,它解决了我的问题。

答案 1 :(得分:4)

在我的情况下,调试模式是 核心.php中的实时服务器上的Configure::write('debug', 0);

我将其设置为Configure::write('debug', 1);,此时未显示任何错误。

所以我再次将调试模式更改为Configure::write('debug', 0);,因为我不想在我的实际网站上显示调试错误。

这次没有出现错误信息。

所以只需在core.php中更改一次调试模式就可以解决这个错误。

如果将调试模式更改为1,然后运行本地更改的那些函数,CakePHP将刷新包含在这些函数中的所有模型的缓存。现在,您可以更改回Configure::write('debug', 0)

答案 2 :(得分:3)

不要在生产中设置Configure::write('debug',2),否则在出现错误时最终会向用户写入敏感数据(例如Query),之所以调试2的工作原因是因为CACHE中的项目不是考虑在内,所以它的工作原理。只需删除缓存并在生产中将DEBUG保留为0非常重要

可以在此处找到缓存:tmp/cache/

然后再次,不要删除你在那里找到的3个文件夹,只需删除它们的内容。