Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

vagrantその19-9 cakephp入門をやってみる(Viewその3) ControllerからViewに変数を渡す。setを使う。

参考にさせて頂いたページ

ビューを使おう!(3/3):初心者のためのCakePHP2.0 プログラミング入門

SampleController.phpの記述内容

参考サイトにならって以下の通り。

<?php
App::uses('AppController', 'Controller');

class SampleController extends AppController {

  public function index() {
    $this->set("title_for_layout","Index Page");
    $this->set("msg","hello!");
    $this->set("datas",array("One","Two"));
  }

}

index.ctpの記述内容

<h1>Index Page</h1>
<p>this is test View.</p>
<p>message: <?php echo $msg; ?></p>
<p> </p>
<p>Data.</p>
<div>
  <ul>
    <?php foreach($datas as $data): ?>
    <li><?php echo $data; ?></li>
    <?php endforeach; ?>
    </ul>
</div>

SampleController.phpの記述内容についての解説

$this->set("変数名","値");

でViewに変数を渡しており、ここでは$はいらない。

    $this->set("title_for_layout","Index Page");

上記の変数title_for_layoutはページタイトルを設定する特別な用途が与えられている変数。
set();で値をViewに渡している。

    $this->set("msg","hello!");
    $this->set("datas",array("One","Two"));

上記の二行は変数msgdatasに値を格納してViewに渡している。

index.ctpの記述内容についての解説

<?php echo $msg; ?>

上記のようにechoで$msgが使える。
設定するときは$this->set("msg","hello!");のように$は付けないけど、使うときは$msgとなる。

<?php foreach($datas as $data): ?>
<li><?php echo $data; ?></li>
<?php endforeach; ?>

上記のように配列$datasも同様。

ページを確認してみる

確認するURLは引き続きhttp://192.168.33.10/cakephp/sample/indexです。