1

アクセス$this->paramsおよび$this->dataコンポーネント内。

class LoginComponent extends Object {
   /*  */
   public function login() {   
      pr($this->params);
      pr($this->data);
   }
}

これをCake v1.2で使用しています。v1.2v2.1でのこの解決策を知りたいです。提案をお願いします。

4

2 に答える 2

6

ライブラリ内のいくつかのコンポーネントを見てください。1.2.x ではなく、Cake 2.x でこれを知っています。更新:コメントに記載されているように、これは 1.x バージョンでも同じように機能します

たとえば、 を開くSecurityComponentと、 という関数が見つかりますstartup()。このメソッドは、自身を次のように定義します。

public function startup(Controller $controller) {
     //Rest of code goes here
}

ご覧のとおり、これらimportは Controller オブジェクトです。今できることは、Controlelr のメソッドと変数にアクセスすることです。ご存知かもしれませんが$this、呼び出し時の は​​ を$this->data参照するためControllerです。

したがって、これ$controllerをコンポーネントで呼び出される保護された変数に格納$_Controllerすると、次のようにデータとパラメーターに簡単にアクセスできます。

# CakePhp 2.x
$this->_Controller->request->data;
$this->_Controller->request->params;

# CakePhp 1.x
$this->_Controller->data;
$this->_Controller->params;

この回答も見てください。

于 2013-01-28T10:23:00.550 に答える
0

ルーターによるチェック: Router::getParams();

于 2013-01-28T10:25:07.573 に答える