1

CakePHP(2.*) で mvc 外の現在のコントローラーまたはリクエスト オブジェクトにアクセスする方法はありますか?

基本的には、CakePHP 用に設計されたライブラリ内のリクエスト オブジェクトにアクセスする必要がありますが、可能な限り独自に機能する必要があります。 .

この目的のためにコンポーネントを作成しましたが、ライブラリへのすべての呼び出しがコントローラーから直接行われるわけではありません。また、$controller または $request 変数を lib 内以外の場所に渡すことも避けたいと思います。

私は CakePHP クラスのロードについてあまり調べたことがありませんが、CakePHP 1.3 が新しくなったときの ClassRegistry について思い出すことができます。コントローラー アクションで ClassRegistry をテストした直後に、それが空であることがわかりました (クラスから直接 ClassRegistry::keys() および pr()'ing で決定されます) 。

それで、リクエストオブジェクトを取得する友好的な方法はありますか、それとも醜い方法に頼るべきですか?

4

2 に答える 2

5

Router::getRequest()CakeRequest インスタンスを取得する必要があります。

于 2012-08-14T11:13:24.837 に答える
0

次のコード例は役に立ちましたか?

//in Socials Controller importing SocialUsers controller
function __checkSocialUser($title, $user_id){
    App::import('Controller', 'SocialUsers');
        $SocialUsers = new SocialUsersController;
        $SocialUsers->constructClasses();
        $ourUserId = $this->Auth->user('id');
        $SocialUsers->data = array('SocialUser' => array('title' => $title, 'identifier' => $user_id, 'user_id' => $ourUserId));
        $result = $SocialUsers->checkUser($title, $user_id);....
于 2012-08-01T13:04:20.720 に答える