我是 cakePHP 的新手,所以我可能会错过明显的内容。
系统正在运行最新下载的版本,使用 Microsoft SQL Server 2005 作为数据库。我知道这有点不寻常,但修复了 URL 重写后,我没有发现其他问题。
我想使用自定义的 finderQuery,但我什至无法替换默认值。具体来说,如果我使用
var $hasMany = array(
'RecyclateTypeConversion' => array(
'className' => 'RecyclateTypeConversion',
'foreignKey' => 'recyclate_type_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => 'select RecyclateTypeConversion.* from recyclate_type_conversions AS RecyclateTypeConversion WHERE RecyclateTypeConversion.recyclate_type_id IN ({$__cakeID__$});',
'counterQuery' => ''
),
};
我看到这个错误
Notice (8): Undefined index: RecyclateTypeConversion [CORE\cake\libs\model\datasources\dbo_source.php, line 1099]
然而,SQL 调试输出确认查询本身运行良好并返回 4 条记录,并且在未指定 finderQuery 时 View 运行完美。我也尝试过其他 hasMany 表 - 具有完全相同的问题。
我尝试用特定字段选择替换全选,但仍然看到相同的结果。当然,根据手册,查询看起来是正确的 - 那么问题是什么(是否与使用 MSSQL 有关?)
编辑:此外,由于尚未找到任何答案,因此调试此问题的最佳方法是什么?我已经开始寻找蛋糕调试类(class),但到目前为止还没有启发我的结果。当然,如果出现问题,我会将修复程序提交回项目。
最佳答案
您是否检查过确实存在一个名为 RecyclateTypeConversion
的模型,并且它的文件名符合 CakePHP 约定? IE。是否有 models/recyclate_type_conversion.php
,并且在该文件中,模型的名称定义为 RecyclateTypeConversion
。
您收到的错误似乎暗示该模型名称有问题,因为它找不到关联的索引。
关于sql-server - CakePHP finderQuery 是否可以与 SQL Server 一起使用?我应该在哪里调试它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6128630/