2012-01-16 19 views
2

cakePHPコンポーネントの関数で宣言された変数をコントローラに渡すにはどうすればいいですか?私はこれを動かすことができない。cakePHPのコントローラにコンポーネント変数を渡す

+0

投稿できるコードはありますか? – dm03514

+0

何が必要なのか、何を持っているのか、何をしたいのか、という説明はありません。 Bad bad bad ... – Albert

答えて

5

さまざまなことができます。基本的に、あなただけのコントローラから必要なコンポーネントの関数を呼び出すと値を返します:

//In controller 
$alteredData = $this->MyComponent->doSomethingWithData($data); 

//In component 
//You can also pass $data by reference if you want to alter it directly. 
public function doSomethingWithData($data){ 
    //alter data in some way 
    return $newData; 
} 

Per the documentationを使用すると、コンポーネントからコントローラメソッドを呼び出すことができますので、あなたはまた、コンポーネントからコントローラに直接アクセスすることができます。

//In component 
private $Controller; 
public function initialize($controller){ 
    $this->Controller = $controller; 
} 

public function doSomethingWithData($data){ 
    //alter data in some way 
    $this->Controller->set('data', $data); 
} 
+0

ありがとうございました – user765368

+0

コンポーネントをロードするようにしてください:* public $ components = array( 'MyComponent'); *それ以外の場合は$ this-> Controller-> set( 'data'、$ data) ; * wiil not work –

+0

cakephp 3.xでこれを行う方法が更新されましたか? – Battousai

関連する問題