Cakephp-views

提供:Dev Guides
移動先:案内検索

CakePHP-ビュー

MVCの文字「V」はビュー用です。 ビューは、リクエストに基づいてユーザーに出力を送信します。 View Classes は、開発プロセスを高速化する強力な方法です。

テンプレートを表示

CakePHPのView Templatesファイルには、デフォルトの拡張子。 ctp (CakePHP Template)があります。 これらのテンプレートはコントローラーからデータを取得し、出力をレンダリングしてユーザーに適切に表示できるようにします。 テンプレートでは、変数、さまざまな制御構造を使用できます。

テンプレートファイルは、 src/Template/ の、ファイルを使用するコントローラーにちなんで名付けられたディレクトリに保存され、対応するアクションにちなんで名付けられます。 たとえば、Productsコントローラーの*“ view()” アクションの *View ファイルは、通常src/Template/Products/view.ctpにあります。

要するに、コントローラー(ProductsController)の名前はフォルダー(Products)の名前と同じですが、コントローラーという言葉がなく、コントローラーのアクション/メソッド(view())の名前(ProductsController)は同じ名前ですビューファイル(view.ctp)。

変数を表示する

ビュー変数は、コントローラーから値を取得する変数です。 ビューテンプレートでは、必要な数の変数を使用できます。 * set()メソッドを使用して、ビューの変数に値を渡すことができます。 これらの設定変数は、ビューとアクションがレンダリングするレイアウトの両方で使用できます。 以下は set()*メソッドの構文です。

構文

Cake\View\View::set(string $var, mixed $value)

このメソッドは、*変数の名前*と*値*の2つの引数を取ります。

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

*config/routes.php*
<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('template',['controller'=>'Products','action'=>'view']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();
*src/Controller/ProductsController.php* に *ProductsController.php* ファイルを作成します。 次のコードをコントローラーファイルにコピーします。
*src/Controller/ProductsController.php*
<?php
   namespace App\Controller;
   use App\Controller\AppController;

   class ProductsController extends AppController{
      public function view(){
         $this->set('Product_Name','XYZ');
      }
   }
?>
*src/Template* にディレクトリProductsを作成し、そのフォルダーの下に* view.ctp。*という *View* ファイルを作成します。そのファイルに次のコードをコピーします。
*src/Template/Products/view.ctp*
Value of variable is: <?php echo $Product_Name; ?>

次のURLにアクセスして、上記の例を実行します。

*http://localhost:85/CakePHP/template*

出力

上記のURLは次の出力を生成します。

products