2011-10-26 8 views
0

私のアプリでは、他のいくつかのモデルから発信される請求書の作成を扱うInvoicesControllerを使用しています。新しい請求書の生成につながる別のメソッドでいくつかのメソッドが呼び出された後、InvoicesController内のcreate()メソッドを呼び出したいだけでなく、関連するパラメータも必要です。 create()メソッドには、請求書モデルでこれを使用することができないため、新しい請求書を支払う準備ができていることを通知するロジックも含まれています(EmailComponentで)。Cakephpの他のコントローラからのメソッドの使い方

これにはどのようなアイデアやベストプラクティスがありますか?

答えて

4

通常、あなたはモデル内で(請求書の作成を意味します)、コントローラ内で前と後で(パラメータを取得して回答を与える)、その方法で簡単に請求書を再利用することができます。とにかくいつでも使用できます

App::import('Controller', 'Posts'); 
$post = new PostsController(); 
$post->myFunction(); 

他のコントローラ機能を使用するには

また、あなたが再利用する一部の機能でのLibを行うことができますが、あなたのケースでは、私は、これはあなたが他のコントローラで多くのことを、それを使用する場合は、あなたに

+1

とcakephp2.0で動作します。 CakePHPのベストプラクティスは、脂肪モデルとスキニーコントローラです:http://nuts-and-bolts-of-cakephp.com/2009/01/06/another-way-to-think-about-mvc/ – drmonkeyninja

0

を助けモデルと

希望をそれを行いますapp_controllerにその関数を置くことを検討し、他のコントローラで$ this-> Functionを使っていつでもアクセスすることができます。

0

再利用可能なコードをモデルメソッドに配置する必要があります。

ところで モデルでEmailComponentを使用できます。私はこれを何年もやっています。 2.0ではそれをさらに簡単にすることができます。 api55が言うように しかし、1.3で単に使用

$Email = new EmailComponent(new Controller())); 
関連する問題