CakePHPにはviewの中で共通仕様するパーツをelementとして定義できるがこの中で、phpのfunctionを書くとエラーになる。
elementのctpファイルは、最終的にViewクラス内の_render()で読み込まれるが、この時include()を使っている。
cake/libs/view/view.php
class View extends Object { function _render($___viewFn, $___dataForView, $loadHelpers = true, $cached = false) { ... if (Configure::read() > 0) { include ($___viewFn); // $___viewFn = "xxxxx.ctp" } else { @include ($___viewFn); } } } |
なので、同じctpファイルを2回includeされると、”同名の関数が複数回定義されている”とのエラーが出てしまう。
関連記事
コメントを残す