質問

cakephpの.ctpファイルからコントローラーファイルのアクションを呼び出したい。出来ますか?はい、どのように?助けてください。たとえば、コントローラーでアクションがあります。 users_controller.php

<?php
class UsersController extends AppController {

    function get_category() {
        ....
    }

}
?>

/question/index.ctpファイルから電話したいと思います。

役に立ちましたか?

解決

これを行うための適切な方法は、次のとおりです。

$this->requestAction(array('controller' => 'users', 'action' => 'get_category'));

URLの作成 the CakePHP way パフォーマンスが向上します(ルーターを使用する必要はありません)。また、「users/get_category」がインデックスページにない場合に問題が発生する可能性があります。

ケースが異なる場合は、要素でのみ(特にキャッシュを使用して)使用する必要があります。 Travis Leleu 彼のコメントに書いた。

他のヒント

リクエストに応じて一般的な慣行として頼るべきではないことに注意する必要があります。要求は非常に課税コールであり、他の方法でコードを整理できない場合にのみ使用する必要があります。

理想的には、コントローラーに呼び出すのではなく、コントローラーアクションから必要なデータをビューに送信します。

function my_action() {
   ...
   $this->set('category', $this->getCategory());
}

$ this-> requestaction( 'controller' => 'users'、 'action' = 'get_category')のように呼び出すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top