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

时间:2014-11-07 10:17:44

标签: cakephp cakephp-2.0

我有USER模型,它包含许多不同用户(医生,养老院等)的子类型,现在基于该子类型我想删除他的用户数据以及他的子类型数据。我在每种类型的用户控制器上制作了删除方法,可以删除该用户的所有关系数据。 现在有没有基于用户类型的方式,以便我从用户控制器调用该用户的delete method(让医生在DoctorsController上定义删除方法)并删除所有数据?

1 个答案:

答案 0 :(得分:1)

你可以用两种方式做到这一点。

假设您有两个变量,一个是$type,您存储子类型名称,一个是$type_id,您可以在其中存储子类型的ID < / em>你想删除。

1)如果您的User模型与您的子类型模型(医生,养老院......)有关系,可能是hasManybelongsTo,然后你可以直接访问你的相关模型。

$this->User->{$type}->delete($type_id);

2)如果User和您的子类型之间没有关系,那么您可以使用ClassRegistry。

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

请注意,如果$type 'Doctor',则表示您不是DoctorsController中的方法,而是Doctor模型中的方法。