这个
REL_CATEGORY
与此
相同编号
。这是类别和子类别的表格。如果模型有外键,我想阻止删除的可能性。当用户想要删除Rel_Category中的foreign_key类别时,抛出一些异常或flash。因此,如果用户想要删除id = 54的测试,那么它应该显示一些错误,该类别具有子类别,用户应首先删除此子类别(id = 51和id = 53)。 更新: 在我的数据库中,我没有删除和更新的操作
答案 0 :(得分:1)
您应该在数据库中处理此问题,并且可以在控制器中尝试:
if (count($model->smCategories)) {
Yii::app()->user->setFlash('error', 'This category has sub categories and cannot be deleted.');
} else {
$model->delete();
}
答案 1 :(得分:0)
您应该在创建数据库表时定义此类约束:
CREATE TABLE `Category` (
...
CONSTRAINT `SelfReference` FOREIGN KEY (`Rel_Category`) REFERENCES `Category` (`Id`) ON DELETE RESTRICT ON UPDATE CASCADE
....
);
http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html
这里的想法是MySQL将维护您的数据完整性约束。