読者です 読者をやめる 読者になる 読者になる

Motomichi Works Blog

その日学習したことについて書いている日記です。誰かの役に立ったらそれはそれで嬉しいです。

さくらvpsとcakephp2.6.7で開発日記 その0008 自作のHelper内でElementsを読み込む

参考にさせて頂いたページ

ぷぎえもん日記 |CakePHPの練習:ヘルパーの中でelement()を使う

cakephp - Using $this->element inside a customHelper - Stack Overflow

はじめに

ctpの中で使用するときみたいに、自作のHelper内で$this->element('Modules/mod-heading-0001');とすると、

Warning (512): Method ExampleHelper::element does not exist [CORE/Cake/View/Helper.php, line 231]

とエラーが出たので、どのようにしたら使えるかという話。

さくらvpsとcakephp2.6.7で開発日記 その0007 Helperを自作する - MOTOMICHI WORKS BLOG

の記事で作成したExampleHelper.phpを少し編集する。

View/Helper/ExampleHelper.phpの編集とその記述内容

例として以下の通りにして、Modules/mod-heading-0001をelementsで読み込む事にした。

<?php
// AppHelperの使用を宣言
App::uses('AppHelper', 'View/Helper');

// AppHelperを継承して、ExampleHelperクラスを作成
class ExampleHelper extends AppHelper {
  // hogeメソッドを定義
  public function hoge($text = 'デフォルト設定文字列') {
    // View/Elements/内のctpファイルを読み込む
    $html = $this->_View->element('Modules/mod-heading-0001');
    return $html;
  }
}

$this->_View->element()と記述することで、使用できる。