我有3个控制器,Tokens, Stores
和Users
。
Token与另外两个模型相关,每个Token都有一个owner-type和owner-id。
在User_controller和Store_controller中也有一个函数,叫做EmailTokenToUser,它将激活链接发送给注册用户或商店的人。
我的问题是:我应该把函数传递给token吗?如果是,我该怎么称呼它?(requestAction是一个坏主意,只为一个函数创建对象…)
任何想法?
要重用代码,您应该将其传递给token的MODEL而不是控制器。这应该是一种方式,而不是唯一的方式。要使用它,你不应该使用requestAction,即使是在控制器内部(它应该是你可以用requestAction来做的方式)。您可以通过两种方式完成此操作。
App:import('model', Token');
Token::myFunction($args);
或
$token = ClassRegistry:init('Token');
$token->myFunction($args);
OR(如果你从控制器内部冷却它,你也可以使用)
$this->loadModel('Token');
$this->Token->myFunction($args);
这是如果你把它放在Token模型函数中。如果没有,用控制器的方式你应该这样做
App:import('controller', 'Tokens');
TokensController::myFunction($args);
或
App:import('controller', 'Tokens');
$token = new TokensController();
$token->myFunction($args);
希望对你有帮助