2

我有 3 个控制器,Tokens, Stores并且Users.

Token 与另外两个模型相关,每个 token 都有一个 owner-type 和 owner-id。

User_controller 和 Store_controller 中还有一个名为 EmailTokenToUser 的函数,它将激活链接发送给注册用户或商店的人。

我的问题是:我应该将函数传递给令牌吗?如果是这样,我应该怎么称呼它?(requestAction 是个坏主意,只为一个函数创建一个对象..)

有任何想法吗?

4

1 回答 1

2

要重用代码,您应该将其传递给令牌的模型而不是控制器。那是它不应该是唯一的方式。要使用它,即使在控制器内部,您也不应该使用 requestAction(同样,它应该是您可以使用 requestAction 执行此操作的方式)。您可以通过两种方式做到这一点。

App:import('model', Token');
Token::myFunction($args);

或者

$token = ClassRegistry:init('Token');
$token->myFunction($args);

或者(如果您从控制器内部收集它,您也可以使用)

$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);

希望它可以帮助你:)

于 2011-10-27T18:51:56.560 回答