データベースへの接続
■MySQLデータベース接続手順
テーブルを用意する。
CREATE TABLE tbl_user ( id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, username VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, email VARCHAR(128) NOT NULL );
sample\protected\config\main.phpの50行目付近を編集
// ↓↓↓コメントする↓↓↓ /* 'db'=>array( 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db', ), */ // ↓↓↓コメントを外して設定情報を入れる↓↓↓ 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=db_sample', 'emulatePrepare' => true, 'username' => 'ユーザー名', 'password' => 'パスワード', 'charset' => 'utf8', ), 'errorHandler'=>array( // use 'site/error' action to display errors 'errorAction'=>'site/error', ), 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'CFileLogRoute', 'levels'=>'error, warning', ), // uncomment the following to show log messages on web pages /* array( 'class'=>'CWebLogRoute', ), */ ), ),
CRUD 操作の実装
■CRUDとは
Create(作成)、Read(読み出し)、Update(修正)、Delete(削除)の頭文字をとった単語
■Giiを構成する
sample\protected\config\main.phpの20行目付近を編集
'modules'=>array( // ↓↓↓コメントを外してパスワードを設定する↓↓↓ 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'設定パスワード', // If removed, Gii defaults to localhost only. Edit carefully to taste. //※'ipFilters'=>array('127.0.0.1','::1'), 'ipFilters'=>array('*'), ), ),
※ipFiltersについて
ipFiltersにはサーバー側のIPではなくアクセスする側のIPを入れてアクセス許可を行っている。 IPが違ってしまう場合は上手く動作しない場合がある(Error 403ページになる) 上手く動作しない場合はワイルドカードでこの問題を解消することができる。 'ipFilters'=>array('*'),
http://localhost/sample/index.php?r=giiにアクセスしてパスワードを入力する。
ログイン後、『Model Generator』のリンクをクリックする。
『Table Name』にデータベースで作成したテーブル”tbl_user”を入力する。
『Model Class』に”User”を入力する。
『Preview』をクリックする。
『Generate』をクリックして
The code has been generated successfully.
が出ればsample\protected\modelsの下にUser.phpファイルが生成される。
■CRUDコードを生成する
『Crud Generator』ページへ移動する。
『Model Class』に”User”と入力する。
『Controller ID』に”user”と入力する。
『Preview』をクリックする。
『Generate』をクリックする。
The controller has been generated successfully. You may try it now
が出れば『controllers』フォルダと『view』フォルダそれぞれにファイルを生成される。
※Generateをやり直す場合
名前の入力ミス等で生成し直したい場合は一度ファイルの実体を消して
再度http://localhost/sample/index.php?r=giiにアクセスして入力しなおす。
・Model Generatorの場合: protected/models/クラス名.php ・Crud Generatorの場合: protected/controllers/クラス名Controller.php protected/views/クラス名 ビューフォルダはまるごと消す。
参考サイト:
http://www.yiiframework.com/doc/guide/1.1/ja/quickstart.first-app
http://nagoring.com/blog/?p=244