我有一个文件表和一个权限表。这个想法是用户可以为其他用户分配权限,允许他们阅读,编辑等。我建立了一个关联,以便我称之为工作区的文件具有许多权限。以下是链接权限模型
的工作空间模型中的声明public $hasMany = array(
'Permission' => array(
'className' => 'Permission',
'foreignKey'=> 'workspace_id',
'dependent' => true
)
);
问题是当我去删除文件时,我收到错误。
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Permission.id' in 'field list'
SQL Query: SELECT `Permission`.`id` FROM `cadwolfc_workspaces`.`permissions` AS `Permission` WHERE `Permission`.`workspace_id` = 71
当我明确将workspace_id定义为外键时,为什么cakephp在权限表中查找id参数?我假设通过链接模型然后删除工作区,相关的权限将被删除。这就是我在这里要做的。我不明白为什么在需要删除查询时执行select查询?
更新:删除工作空间项的调用是通过传递工作空间的id通过ajax调用完成的。我已经确认$ fileid是正确的数字。
$this->Workspace->delete($fileid);
更新2:当我在名为'id'的权限表中添加列时,将其值设为适当的数字,然后删除调用正常工作并删除所有项目。这是为什么?