- 普通 - 未处理
[i=s] 本帖最后由 翱翔白鹭 于 2012-3-4 17:21 编辑 [/i]关联删除操作时,单条删除时没有问题,但删除多条主键ID时出错!
比如:
D("Category")->relation(true)->delete("3");
会删除user和其关联数据,
但D("Category")->relation(true)->delete('3,4,5');
却只能删除Category里的数据,关联表(Article)里的数据不删除,查看日志后发现多条删除时生成SQL里的关联id='',下面是日志记录:
[quote]SQL: DELETE FROM `lm_category` WHERE ( `cate_id` IN ('13','12') ) [ RunTime:0.001217s ]
[ 2012-03-04T17:12:05+08:00 ] /category/save | NOTIC: [8] Undefined index: mapping_name RelationModel.class.php 第 265 行.
[ 2012-03-04T17:12:05+08:00 ] /category/save | NOTIC: [8] Undefined index: cate_id RelationModel.class.php 第 271 行.
[ 2012-03-04T17:12:05+08:00 ] /category/save | SQL: SHOW COLUMNS FROM `lm_article` [ RunTime:0.003952s ]
[ 2012-03-04T17:12:05+08:00 ] /category/save | SQL: DELETE FROM `lm_article` WHERE cate_id='' [ RunTime:0.001132s ][/quote]
关联模型定义:
class CategoryModel extends RelationModel
{
// 自动验证设置
protected $_validate = array(
array('cate_name','require','分类名称必须填写!',1)
);
protected $_link = array(
'Article' => array(
'mapping_type' => HAS_MANY,
'class_name' =>'Article',
'foreign_key' => 'cate_id',
)
);
} 