1

すべてのページで要素をレンダリングする必要があるため、default.ctp で呼び出しました。2 つまたは 3 つの特定のページに表示されないようにしたい。

私はグーグルで解決策を見つけました。これは、私がやりたいことを正確に実行しようとしています:

http://bakery.cakephp.org/articles/saidbakr/2012/04/20/prevent_render_layout_elements_with_the_render_of_some_views

このソリューションでは、要素に次のコードを配置することで、要素の名前とパスが抽出されます。

<?php
$e = explode('views/elements/',__FILE__);
$e[1] = str_replace('.ctp', '', $e[1]);
if (isset($this->preventElement) && $e[1] == $this->preventElement[$e[1]]) return false;
?>

そして、その要素をレンダリングしたくないビューには、次のコード行が配置されます。

<?php $this->preventElement['someElement'] = 'someElement';?>

ここではビューオブジェクトpreventElementが使用されていますが、テストするとメッセージが表示されましたpreventElementHelper could not be found.

prventElement CakePhp のドキュメントに参照が見つかりませんでした。

4

2 に答える 2