1

books/indexコントローラーとビューがあります。ビューは次のようになります。

abcdef
123445
<?php echo $this->element('categorytree'); ?>
xyz
999

私はelements/categorytree要素を持っています:

<?php
    function my_function() { echo '123'; } 
    echo 'element is here!';
?>

ブラウザで books/index に移動すると、要素はレイアウトなしでレンダリングされるため、ソース出力は次のようになります。

abcdef
123445
element is here!
xyz
999

そして、要素の関数宣言を削除すると、問題はなくなります-レイアウト全体がレンダリングされます-したがって、要素内でphp関数を宣言すると問題が発生し、この要素がビューによって「フェッチ」されると、この要素のみがレイアウトなしでレンダリングされます.

この問題は突然発生しました。理由はわかりません...要素で宣言された関数を使用する前は、問題はありませんでした...

------------------解決済み

<!-- -->うわー、これは奇妙です - 問題は$this->element() の後のタグによって引き起こされました...

4

1 に答える 1

2

あなたは問題の解決策を見つけましたが、ビューで関数を定義することは恐ろしい習慣であることを指摘したいと思います。これを行うためのより適切でクリーンな方法は、カスタム ヘルパーを作成し、単純にそれを使用することです。

ビューは、関数やクラスを記述する場所ではありません。

于 2012-05-17T11:52:41.440 に答える