我的 CakePHP 1.3 应用程序有问题,我不确定是代码问题还是数据库问题。
我的一个控制器中有一个非常简单的功能,每当我向该控制器添加查询部分时,我都会收到以下(令人愤怒且完全无用的)错误消息:
Missing Controller
Error: InternalError.htmlController could not be found.
Error: Create the class InternalError.htmlController below in file:
app/controllers/internal_error.html_controller.php
这是模型 ForecastZones
class ForecastZone extends AppModel {
var $name = 'ForecastZone';
var $displayField = 'name';
//The Associations below have been created with all possible keys, those that are not needed can be removed
var $belongsTo = array(
'State' => array(
'className' => 'State',
'foreignKey' => 'state_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
var $hasMany = array(
'ForecastZonePoly' => array(
'className' => 'ForecastZonePoly',
'foreignKey' => 'forecast_zone_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
这是莫名其妙失败的控制器功能:
function poly($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid forecast zone', true));
$this->redirect(array('action' => 'index'));
}
$this->layout = false;
$result = $this->ForecastZone->query("SELECT coords FROM forecast_zone_polies WHERE forecast_zone_id = $id;");
$this->set('forecastZone', $result);
}
每当我调用此控制器操作时,CakePHP 史诗都会失败。它挂了很长时间......然后没有告诉我有用的东西,比如“数据库查询花费了太长时间”或“模型关联损坏”或类似的东西......它只是放弃并给了我这个完整的 BS 错误消息.
这不是路径问题,路径是正确的。如果我删除 $result 变量,一切正常,我会收到相应的“forecastZone is not set”错误消息。这个问题的症结似乎是一个需要永远的查询,然后 Cake 没有正确报告错误消息。
请帮我解决这个问题。非常令人沮丧......无论如何都不是“蛋糕”。
编辑:我想补充一下我最初一直在使用
$this->ForecastZone->read(null,$id);
为了获取数据,但查询的挂起和失败一直在发生,所以我切换到原始查询,希望这可能会改变一些事情。
编辑2:
我尝试了更多的东西:将此行添加到我的控制器顶部:
var $uses = array('ForecastZone','ForecastZonePolies');
然后尝试以“正确的方式”做事情仍然失败。啊!
$result = $this->ForecastZonePolies->find('all',array('conditions' => array('ForecastZonePolies.forecast_zone_id' => $id)));
$result = $this->ForecastZone->ForecastZonePolies->find('all',array('conditions' => array('ForecastZonePolies.forecast_zone_id' => $id)));
这些都不起作用。