我有USER
模型,它包含许多不同用户(医生,养老院等)的子类型,现在基于该子类型我想删除他的用户数据以及他的子类型数据。我在每种类型的用户控制器上制作了删除方法,可以删除该用户的所有关系数据。
现在有没有基于用户类型的方式,以便我从用户控制器调用该用户的delete method
(让医生在DoctorsController
上定义删除方法)并删除所有数据?
答案 0 :(得分:1)
你可以用两种方式做到这一点。
假设您有两个变量,一个是$type
,您存储子类型名称,一个是$type_id
,您可以在其中存储子类型的ID < / em>你想删除。
1)如果您的User
模型与您的子类型模型(医生,养老院......)有关系,可能是hasMany
或belongsTo
,然后你可以直接访问你的相关模型。
$this->User->{$type}->delete($type_id);
2)如果User
和您的子类型之间没有关系,那么您可以使用ClassRegistry。
ClassRegistry::init($type)->delete($type_id);
请注意,如果$type
'Doctor',则表示您不是DoctorsController
中的方法,而是Doctor
模型中的方法。