CakePHP ビュー要素

王林
リリース: 2024-09-10 17:22:29
オリジナル
580 人が閲覧しました

Web ページの特定の部分が複数の Web ページ上で繰り返されていますが、場所は異なります。 CakePHP は、これらの繰り返し部分を再利用するのに役立ちます。これらの再利用可能な部分は 要素 - ヘルプ ボックス、追加メニュー、 などと呼ばれます。要素は基本的に ミニビュー です。要素内で変数を渡すこともできます。

Cake\View\View::element(string $elementPath, array $data, array $options =[]
ログイン後にコピー

上記の関数には次の 3 つの引数があります -

  • 最初の引数は、/src/Template/element/ フォルダー内のテンプレート ファイルの名前です。

  • 2 番目の引数は、レンダリングされたビューで使用できるデータの配列です。

  • 3 番目の引数はオプションの配列です。例えばキャッシュ。

3 つの引数のうち、最初の引数は必須ですが、残りはオプションです。

src/Template/element ディレクトリに helloworld.php. という名前の要素ファイルを作成します。そのファイルに次のコードをコピーします。

src/Template/element/helloworld.php

<p>Hello World</p>
ログイン後にコピー

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

src/Template/Elems/index.php

Element Example: <?php echo $this->element('helloworld'); ?>
ログイン後にコピー

次のプログラムに示すように、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('/element-example',['controller'=>'Elems','action'=>'index']);
   $builder->fallbacks();
});
ログイン後にコピー

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

src/Controller/ElemsController.php

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

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

出力

上記の URL を実行すると、次の出力が得られます。

Element Example

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

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