Motomichi Works Blog

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

vagrantその19-4 cakephp入門をやってみる(Controllerその3) 値の受け渡し

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

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

今回やること

リダイレクトするときに値を受け渡す。

今回のサンプルソースコード

参考にさせて頂いたページにならって以下

SampleController.php

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

class SampleController extends AppController {
    public function index() {
        $this -> autoRender = false;
        $date = new DateTime();
        $date->setTimeZone(new DateTimeZone('Asia/Tokyo'));
        $str = $date->format("H:i:s");
        $this->redirect("./other/" . urlencode($str));
    }
    public function other($param){
        $this -> autoRender = false;
        $str = urldecode($param);
        echo "<html><head></head><body>";
        echo "<h1>サンプルページ</h1>";
        echo "<p>これはもう1つのページです。</p>";
        echo "<p>送られた値: " . $str . "</p>";
        echo "</body></html>";
    }
}

ここまでの実装に関する解説

        $date = new DateTime();
        $date->setTimeZone(new DateTimeZone('Asia/Tokyo'));
        $str = $date->format("H:i:s");

で現在時刻を取得して$strに格納。

        $this->redirect("./other/" . urlencode($str));

で$strをURLに付けてリダイレクト。

    public function other($param){

でindexアクションで渡した$strを、otherアクションの中に引数$paramとして受け取っている。

        $str = urldecode($param);

エンコードされていた$paramをデコードして、$strに格納。

        echo "<html><head></head><body>";
        echo "<h1>サンプルページ</h1>";
        echo "<p>これはもう1つのページです。</p>";
        echo "<p>送られた値: " . $str . "</p>";
        echo "</body></html>";

でhtmlを出力。

今回はここまで。