Cakephp 2.x从用户控制器调用delete方法

Cakephp 2.x从用户控制器调用delete方法,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我有用户模型,它由许多不同用户(医生、疗养院等)的子类型组成,现在基于该子类型,我想删除他的用户数据以及他的子类型数据。我在每种类型的用户控制器上创建了delete方法,可以删除该用户的所有关系数据。 现在是否有任何方法基于用户类型,以便我从用户控制器调用该用户的删除方法(对于医生,它的删除方法定义在医生控制器)并删除所有数据?您可以通过两种方法来完成 假设您有两个变量,一个是存储子类型名称的$type,另一个是存储要删除的子类型id的$type\u id 1)如果您的用户模型与您的子类型模型(

我有
用户
模型,它由许多不同用户(医生、疗养院等)的子类型组成,现在基于该子类型,我想删除他的用户数据以及他的子类型数据。我在每种类型的用户控制器上创建了delete方法,可以删除该用户的所有关系数据。
现在是否有任何方法基于用户类型,以便我从用户控制器调用该用户的
删除方法
(对于医生,它的删除方法定义在
医生控制器
)并删除所有数据?

您可以通过两种方法来完成

假设您有两个变量,一个是存储子类型名称的
$type
,另一个是存储要删除的子类型id的
$type\u id

1)如果您的
用户
模型与您的子类型模型(医生、疗养院等)有关系,可能
有许多
属于
,则您可以直接访问相关模型

$this->User->{$type}->delete($type_id);
2)如果
User
和子类型模型之间没有关系,那么可以使用ClassRegistry

ClassRegistry::init($type)->delete($type_id);

请注意,如果
$type
是'Doctor',例如,您不是在
DoctorsController
中调用方法,而是在
Doctor
模型中调用方法。

谢谢,这样就可以了,但是如果有任何方法,我可以用非常有用的相同方式从控制器中调用delete方法。@ashishTripathi Yes,您可以使用RequestAction()或导入控制器并实例化它,但我不建议两者都使用。“一定要把你的逻辑放在模型里。”戴莫先生,你对cakePHP有着深刻的了解+1.帮助他人:)