Quantcast
Channel: ウィリアムのいたずらの、まちあるき、たべあるき
Viewing all articles
Browse latest Browse all 7276

CakePHPの1.X系と、2.X系で何が違うのか−その3

$
0
0
PHPの1.X系と、2.X系で何が違うのか
同じものを作って比較してみる。

前回までで、1.Xと2.Xで、モデルを使わない形での話だったので、
今回は、モデルを使って、1.X系でのお話をする



■お題


その1
http://blog.goo.ne.jp/xmldtp/e/493d369c8d635b3a269d4e02dcc7ae95

と同じお題なのだが、
RDBのMySQL内(データベース名test)に、
usersというテーブルがあって、
こんな感じ

で、項目(id,user_name,kaisuの3項目)とデータが入っている。
これを検索し、
  入力された名前がDBのuser_nameと一致したら、
    そのデータのkaisuに1を足して表示
  入力された名前がDBのuser_nameになかったら
    1回目と表示して
 データをDBに保存する。



■追加・修正部分

今回は、モデル部分を追加する(基本的にcakePHPの命名規約[2]に準拠)。
また、コントローラー部分(my_test_controller.php)を修正することになる。
とくに、コントローラー名とモデル名が違うケースとなる。

ファイル構造は、以下のとおり
app
 |
 |-controllers
 | |
 | *−my_test_controller.php
 |
 |-models
 | |
 | *−user.php
 |
 *- views
    |
    *−my_test
        |
        |−hello.ctp
        |
        *−index.ctp

赤字が変更・追加部分


■追加・修正ファイル

変更・追加したファイル(上記の赤字)のみ掲載する。変わらないViewについては、
その1を参照

●コントローラー部分の修正my_test_controller.php
<?php class MyTestController extends AppController { var $name = 'MyTest'; public $uses = 'User'; public function index() { } public function hello() { // 画面引数の取得 $yourname =$this->params['form']['yourname']; // DBアクセスして値取得 $condition = array("user_name" => $yourname); $records = $this->User->find("first",array("conditions" => $condition)); if ( count($records['User']) > 0 ) { $kaisu = $records['User']['kaisu'] + 1; // DBアクセスして更新 $data['User'] = array('id' => $records['User']['id'], 'kaisu' => $kaisu); $fields = array('kaisu'); $this->User->save($data, false, $fields); } else { $kaisu = 1; // DBアクセスして追加 $data['User'] = array('user_name' => $yourname, 'kaisu' => 1); $this->User->save($data); } // Viewに設定 $this->set('yourname',$yourname); $this->set('kaisu',$kaisu); } }

●モデル部分の追加user.php

<?php
class User extends AppModel{

var $name = 'User';

}



参考文献[1][3]を参考に作成



■参考文献

[1]CakePHPのModelを使う データベース関連処理をシンプルに解決
http://puyo2.upper.jp/cake/files/cakephp4.pdf

[2]cakePHP クラス名、モデル名の命名ルール
http://www.wakatta-blog.com/cakephp_2.html

[3]CakePHPのfind, findAll, findCount, delete, deleteAll
http://techracho.bpsinc.jp/piichan1031/2009_01_21/132

Viewing all articles
Browse latest Browse all 7276

Trending Articles