ほとんどのコードを共有する 2 つのコントローラーがあります (ただし、異なるコントローラーである必要があります)。(少なくとも私にとっては) 明らかな解決策は、クラスを作成し、2 つのコントローラーがそれを継承するようにすることです。問題は... どこに置くの?今は app_controller.php にありますが、ちょっと面倒です。
1035 次
2 に答える
9
Cake では、コンポーネントは、複数のコントローラーで使用できるロジックを格納するために使用されます。ディレクトリは /app/controllers/components です。たとえば、共有可能なユーティリティ ロジックがある場合、UtilComponent というオブジェクトと、/app/controlers/components に UtilComponent.php というファイルがあります。
<?php
class UtilComponent extends Object {
function yourMethod($param) {
// logic here.......
return $param;
}
}
?>
次に、コントローラ クラスに以下を追加します。
var $components = array('Util');
次に、次のようなメソッドを呼び出します。
$this->Util->yourMethod($yourparam);
より詳しい情報:
于 2008-09-25T16:54:37.750 に答える
4
ところで、「それらは別々のコントローラーでなければならない」という理由が必要なURLである場合。ルーティングを使用できることを忘れないでください。
Router::connect('/posts', array('controller' => 'posts', 'action' => 'index'));
Router::connect('/comments', array('controller' => 'posts', 'action' => 'list_comments'));
于 2008-09-26T09:57:00.693 に答える