CakePHP のビューの拡張

WBOY
リリース: 2024-09-10 17:25:28
オリジナル
935 人が閲覧しました

Web ページを作成しているときに、ページの特定の部分を他のページで繰り返したいことがよくあります。 CakePHP には、別のビューでビューを拡張できる機能があり、そのためにコードを再度繰り返す必要はありません。

extend() メソッドは、View ファイル内のビューを拡張するために使用されます。このメソッドは 1 つの引数、つまりパス付きのビュー ファイルの名前を受け取ります。ビュー ファイルの名前を指定するときに拡張子 .ctp を使用しないでください。

次のプログラムに示すように、config/routes.php ファイルを変更します。

config/routes.php

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   $builder->connect('extend',['controller'=>'Extends','action'=>'index']);
   $builder->fallbacks();
});
ログイン後にコピー

src/Controller/ExtendsController.php に ExtendsController.php ファイルを作成します。 コントローラー ファイルに次のコードをコピーします。

src/Controller/ExtendsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   class ExtendsController extends AppController{
      public function index(){
      }
   }
?>
ログイン後にコピー

src/Template にディレクトリ Extends を作成し、そのフォルダーの下に header.php という名前の View ファイルを作成します。そのファイルに次のコードをコピーします。

src/Template/Extends/header.php

<div align="center">
   <h1>Common Header</h1>
</div>
<?= $this->fetch('content') ?>
ログイン後にコピー

Extends ディレクトリの下に index.php. という名前の別の View を作成し、そのファイルに次のコードをコピーします。ここでは、上記のビュー header.php.

を拡張しています。

src/Template/Extends/index.php

<?php $this->extend('header'); ?>
This is an example of extending view.
ログイン後にコピー

次の URL http://localhost/cakephp4/extend にアクセスして、上記の例を実行します

出力

実行すると、次の出力が表示されます。

Common Header

以上がCakePHP のビューの拡張の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート