2017年12月13日水曜日

CakePHPでコントローラーから呼び出したコントローラーのコンポーネント呼び出し

How to call the controller's component called from the controller with CakePHP


ControllerAから呼び出したControllerBに $components で宣言されているコンポーネントFooのメソッドbarを呼び出すときは手動でloadする必要があります。
ざっくりと。。。

ControllerAはこんな感じ
$B = new BController;
$B->hoge();
ControllerBはこんな感じ
$componets = ['Foo']; // コンポーネントを使うよ
function hoge() {
  // newされたときはコンポーネントを手動で読み込むよ
  if (newされたとき) {
    $this->Foo = $this->Componet->load('Foo');
    $this->Foo->startup($this); // startup()を使うときはこれも手動で
    return $this->Foo->bar();
  }
}
https://book.cakephp.org/2.0/ja/controllers/components.html

#PHP #cakephp

0 件のコメント:

コメントを投稿