2

ケーキPHPのコンポーネント内でSet関数を使用する方法は?

class TestComponent extends Object
{
  //etc

 $this->set('User', $user); 

 }

エラーが発生します

Fatal error: Call to undefined method TestComponent::set() 

これをどのように修正できますか?

4

2 に答える 2

7
function startup($controller) { $this->controller = $controller }
function something() {
    $this->controller->set('User',$user);
}

Cakeは、コントローラー参照をコンポーネントのスタートアップ関数に渡します。後でカスタム関数で使用するには、コンポーネントに参照を保持する必要があります。

ここを参照してくださいhttp://book.cakephp.org/1.3/en/view/996/Creating-Components#MVC-Class-Access-Within-Components-998

于 2012-04-19T14:10:32.127 に答える
0

ほとんどの場合、Componentメソッドはコントローラーから呼び出されるため、コントローラーの関数から値を返すことができます。ビューレイヤーに変数を設定する場合は、これを使用できます

$this->Controller->set('varForView',varValue);

これは、コンポーネントには、インスタンス化された場所からのControllerインスタンスのクラス変数があるためです。

于 2013-09-27T06:05:46.090 に答える