1

多くの場所で使用されるビューがいくつかあります。ビューは同じですが、コントローラーは同じではないため、.ctp ファイルを Elements ディレクトリに配置し、別のコントローラーで次のコードを使用します。

$this->render('/Elements/overview'); 

ただし、ビューが読み込まれるたびに実行する必要がある php コードもいくつかあります。そのため、Elements ディレクトリ (overviewController.php) のビューとして名前が付けられた Contollers ディレクトリにコントローラーを作成するだけでよいと考えましたが、残念ながら、そのコントローラーのコードは実行されません。

これを行う方法はありますか、それとも完全に間違っていますか?

編集:わかりました Dave のアドバイスで、overview.ctp ファイルを Global という新しいディレクトリにコピーしました。コントローラーの名前を GlobalController.php に変更し、クラスの名前を GlobalController に変更し、$this->render を変更しました。それでも、ビューが読み込まれ、ビューをレンダリングするために使用するコントローラーが読み込まれますが、GlobalController は読み込まれません。

4

1 に答える 1

1

ビュー全体に要素を使用するのは普通ではありません。実際のビューファイルを使用する方がよいでしょう。要素は、WITHIN ビューを使用するコードの小さなチャンクです。

例:

「OverviewsController.php」を作成します (PluralController.php であることに注意してください)。その中で、関数を作成します。

public function overview() {

}

その機能にアクセスするには、次の URL を使用します。 www.yourdomain.com/overviews/overview

そして、そのビューファイルはViews/Overviews/overview.ctp

多くの場所で使用する予定がある場合は、ビュー内に要素を含めることができます。

編集:

投稿したコードに問題はありませんが、要素をレンダリングする必要はありません - ビューをレンダリングするだけです:

public function anything() {
    $this->render('/Overviews/overview');
}
于 2012-12-04T15:14:32.620 に答える