トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

CakePHP【controller】

CakePHP

[PHP]
最終更新時間:2010年10月03日 16時44分35秒

Controller

インストール方法や基礎的なことはCakePHP【基礎】を参照。

まずControllerを使用してデータを表示することから始める

 controllerの作成

 $ vim controllers/hello_controller.php
 <?php
 
   class HelloController extends AppController {
 
     // controllerの名前を指定する
     public $name = 'Hello';
     // 使用するmodelを指定するもの
     // 今回はmodelを使用しない為にnullに設定する
     public $uses = null;
 
     function index() {
       $data = 'Hello World';
       $this->set('data', $data);
     }
 
   }
 ?>

 viewの作成

 $ vim views/hello/index.ctp
 <h2>Hello World</h2>
 <?php echo $data; ?>

 表示確認

上記の2つが作成できたら、アクセスをしてみる

 http://localhost/hogehoge/hello/

計算を行う

 Controllerの作成

 $ vim controllers/calc_controller.php
 <?php
 
 class CalcController extends AppController {
 
   public $name = 'Calc';
   public $uses = null;
   // テンプレートの設定
   // falseにするとテンプレートを使わなくなる
   public $autoLayout = false;
 
   function index() {
     $a = '';
     $b = '';
     $c = '';
     $comment = '';
     if (empty($this->params['url']['a']) && empty($this->params['url']['b'])) {
 
       $comment = "ボックスを入力してください。";
 
     } elseif (empty($this->params['url']['a'])) {
 
       $b = $this->params['url']['b'];
       $comment = "1番目のボックスを入力してください。";
 
     } elseif (empty($this->params['url']['b'])) {
 
       $a = $this->params['url']['a'];
       $comment = "2番目のボックスを入力してください。";
 
     } elseif (!preg_match("/[0-9]/", $this->params['url']['a']) || !preg_match("/[0-9]/", $this->params['url']['b'])) {
 
       $a = $this->params['url']['a'];
       $b = $this->params['url']['b'];
       $comment = "半角数字以外は入力できません。";
 
     } else {
 
       $a = $this->params['url']['a'];
       $b = $this->params['url']['b'];
       $c = $a + $b;
 
     }
       $this->set("a", $a);
       $this->set("b", $b);
       $this->set("c", $c);
       $this->set("comment", $comment);
   }
 }

 Viewの作成

 $ vim views/calc/index.ctp
 <html>
 <head>
   <title>Calc</title>
   <meta http-equiv="Content-Type" content="text/html; charst=utf-8" />
 </head>
 <body>
   <p>足し算をします。フォームに値を入力してください。</p>
   <b><?php echo $comment ?></b>
   <form method="get" action="./index">
     <input type="text" name="a" value="<?php echo $a ?>" size="4" />
     +
     <input type="text" name="b" value="<?php echo $b ?>" size="4" />
     =
     <?php echo $c ?>
     <br />
     <input type="submit" value="計算">
   </form>
 </body>
 </html>