Web ページを作成しているときに、ページの特定の部分を他のページで繰り返したいことがよくあります。 CakePHP には、別のビューでビューを拡張できる機能があり、そのためにコードを再度繰り返す必要はありません。
extend() メソッドは、View ファイル内のビューを拡張するために使用されます。このメソッドは 1 つの引数、つまりパス付きのビュー ファイルの名前を受け取ります。ビュー ファイルの名前を指定するときに拡張子 .ctp を使用しないでください。
次のプログラムに示すように、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 ファイルを作成します。 コントローラー ファイルに次のコードをコピーします。
<?php namespace App\Controller; use App\Controller\AppController; class ExtendsController extends AppController{ public function index(){ } } ?>
src/Template にディレクトリ Extends を作成し、そのフォルダーの下に header.php という名前の View ファイルを作成します。そのファイルに次のコードをコピーします。
<div align="center"> <h1>Common Header</h1> </div> <?= $this->fetch('content') ?>
Extends ディレクトリの下に index.php. という名前の別の View を作成し、そのファイルに次のコードをコピーします。ここでは、上記のビュー header.php.
を拡張しています。<?php $this->extend('header'); ?> This is an example of extending view.
次の URL http://localhost/cakephp4/extend にアクセスして、上記の例を実行します
実行すると、次の出力が表示されます。
以上がCakePHP のビューの拡張の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。