0

http://www.devarticles.in/のCaptchaコンポーネントを使用しています

私は次のようなキャプチャコンポーネントをインポートしました

    App::import('Component', 'Captcha'); //load it
    $this->Captcha = new CaptchaComponent(new ComponentCollection()); //make instance
    $this->Captcha->startup($this);

しかし、関数を次のように呼び出そうとすると

    $captcha = $this->Captcha->getVerCode();

それは私にエラーを与えます

Call to a member function read() on a non-object in C:\xampp\htdocs\westudy_old\app\Controller\Component\CaptchaComponent.php on line 65

コンポーネントの私の機能は

function getVerCode() {
    return $this->Controller->Session->read('security_code');
}

コンポーネントの起動機能は

    function startup() {
    $this->Controller = $this->_controller;
}
4

2 に答える 2

0

先頭で $Controller を宣言する必要があります。public $Controller;

そして、startup() を次のように変更します

function startup($controller) {

$this->Controller = $controller;

}

通常、initialize() メソッドで $controller を割り当てています。startup() メソッドで機能するかどうかはわかりませんが、機能すると思います。

詳細については、 CakePHPコンポーネント セクションを参照してください。

于 2012-08-07T13:31:26.383 に答える