在我的应用程序中,我使用InvoicesController来处理创建可以源自其他几个模型的发票。在另一个导致生成新发票的方法中调用某个方法之后,我想在InvoicesController中调用create()方法,但也需要相关参数。我想集中这一点,因为create()方法还包含通知客户新发票可以付款的逻辑(使用EmailComponent,因为我不能在发票模型中使用它)。
对此有何想法或最佳做法?
答案 0 :(得分:4)
通常你会在模型中使用该方法(我的意思是创建发票),在控制器中使用前后(获取参数并给出答案),这样你就可以轻松地重复创建发票...无论如何你可以随时使用
App::import('Controller', 'Posts');
$post = new PostsController();
$post->myFunction();
要使用其他控制器功能。
你也可以使用你想要重复使用的一些函数来创建一个Lib,但在你的情况下,我会用模型来做这个
希望这有助于你
答案 1 :(得分:0)
如果您在其他控制器中使用它那么多,请考虑将该函数放在app_controller中,并且您始终可以使用$ this->函数在任何其他控制器中访问它。
答案 2 :(得分:0)
您应该将可重复使用的代码放在模型方法中!
顺便说一下: 您可以在模型中使用EmailComponent。我这么做多年了。使用2.0,它更容易实现。 但在1.3中只需使用$Email = new EmailComponent(new Controller()));
答案 3 :(得分:0)
根据http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#loading-classes 它可以在cakephp2.0中使用
App::import('PostsController', 'Controller');