2012-04-19 3 views
2

Setの機能は、ケーキの中のコンポーネントの中で機能しますか?ケーキのコンポーネントで '設定'

class TestComponent extends Object 
{ 
    //etc 

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

} 

私はこれを補正することができるどのようにエラー

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

を取得していますか?

答えて

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

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

ほとんどの時間コンポーネントメソッドは、コントローラから呼び出されているので、あなたは、コントローラ内の関数から値を返すことができ、ここでhttp://book.cakephp.org/1.3/en/view/996/Creating-Components#MVC-Class-Access-Within-Components-998

+0

ここにAppControllerを設定するにはどうすればよいですか? –

+0

AppControllerはどういう意味ですか? – cgTag

+0

1つの小さなこと:常に正しい引数の構文を使用してください: 'public function startup(Controller $ controller){}' - とにかく2.xのために(彼はまだ1.3を使っているようです) – mark

0

を参照してください。あなたのビュー層のための一連の変数が必要な場合 は、このコンポーネントは、それがインスタンス化された場所からコントローラインスタンスのクラス変数を持っているので、これは

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

を使用することができます。

関連する問題