2014年2月2日日曜日

CakePHPでMySQLデータベースのテーブルにアクセスする(scaffold)

CakePHPでデータベースのテーブルにscaffoldでアクセスする。
読み方はスキャフォールド(でよいと思う)。

scaffoldを使用すれば、手っ取り早くテーブルにアクセスすることができる。
実際のアプリケーション運用で使用することはないが、開発者がアプリケーションの動作確認を目的にデータベースの操作を行う場合に有用といえる。

動作環境
・Ubuntu 12.04.3 LTS
・CakePHP 2.4.4
・MySQL 5.5.34
・Apache 2.2.22

 

命名規約

scaffoldを使用するためには、CakePHPの命名規約に従う必要がある。

下記は、商品の在庫情報を持つモデル「Stock」を作成する場合の、モデル、コントローラ、データベーステーブルの名前となる。

モデル:Stock
コントローラ:StocksController
データベースのテーブル:stocks

 

データベーステーブルの作成

CakePHPからアクセスするテーブルをデータベースに生成する。

CakePHPからではなく、MySQLのコマンドから下記のSQL文を実行し、テーブルを作成する。

CREATE TABLE `stocks` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`num` int(11) DEFAULT 0,
PRIMARY KEY (`id`)
);


 


コントローラの作成


アクセスするコントローラを作成する。
コントローラの中身はscaffoldをpublic変数として持つだけでよい。あとはコントローラの実行時にCakePHPが動的にモデルを生成してくれる。


<?php
class StocksController extends AppController {
public $scaffold;
}
?>

 


アクセス


生成したテーブルへアクセスするために、下記のURLにアクセスする。


 http://localhost/SampleApl/Stocks


アクセス結果は下記のようになる。
テーブルが空のため、データは何も表示されない。


CakePHP- the rapid development php framework- Scaffold -- Index -- Stocks


画面左側の「Actions」メニューの「NewStock」ボタンからデータを挿入することができる。
また、挿入したデータの編集、削除も行うことができる。

0 件のコメント:

コメントを投稿