teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

例示

2019/12/02 11:20

投稿

nojimage
nojimage

スコア959

answer CHANGED
@@ -1,4 +1,26 @@
1
1
  コンポーネントの中で、 `$this->getController()` とすれば、呼び出し元のコントローラーが取得できます。
2
2
  (古いバージョンでは `$this->_registry->getController()`)
3
3
 
4
- あとは、取得したコントローラーの`set`に渡せばよいですね
4
+ あとは、取得したコントローラーの`set`に渡せばよいですね
5
+
6
+ ## 追記
7
+
8
+ `$this->getController()` の戻り値が呼び出し元のコントローラーとなります。
9
+
10
+ なので、
11
+
12
+ ```php
13
+ class SearchComponent extends Component
14
+ {
15
+ public function icesearch()
16
+ {
17
+ // なんやらかんやらの処理
18
+
19
+ $controller = $this->getController(); // ← コントローラーを取得して
20
+ $controller->set('ices', $ices); // ← $ices を View変数に渡す
21
+ }
22
+ }
23
+
24
+ ```
25
+
26
+ といった感じに書きます。