CakePHP View::extend()

View::extend()についてサブディレクトリやプラグインで使った時の挙動がよくわからなかったので、実際に動かして見ました。

環境

  • CakePHP2.3.6

結果

view_extend

View Type

カレントViewファイルのViewタイプによりベースディレクトリが異なります。カレントファイルがElementの場合はElements, Layoutの場合はLayouts内のファイルを指定することができます。

  • Element (Views/Elements)
  • Layout (Views/Layouts)
  • View (Views/[Current viewPath] e.g. Views/Posts)

カレントファイルがサブディレクトリ内にあるときは、同一ディレクトリ内のファイルではなく、それぞれのベースディレクトリからの指定になります。例えば、Views/Posts/Sub/common.ctpでViews/Posts/Sub/parent.ctpを使いたければ、‘Sub/parent’と指定する必要があります。

ベースディレクトリをViews/にしたい場合は“/”から始めます。 e.g. ‘/Posts/Sub/parent’

プラグイン内では

プラグイン内で使う場合はベースディレクトリがプラグインのView内のものになります。i.e. app/Plugin/PluginName/Views/(Elements | Layouts | viewPath)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください