WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
スキーマビルダーの基礎

スキーマビルダーの基礎

このエントリーをはてなブックマークに追加

Schemaクラスは、データベーステーブルを操作するためのクラスです。Laravel4がサポートしている全てのデータベースで動作し、共通のAPIを持っています。

テーブルの作成/削除

テーブルを作成するには、createメソッド、削除するには、dropメソッドを指定します。Schema::createメソッドは、基本的に下記のように記述します。

Schema::create(テーブル,アクション);

Schema::createメソッドは、第1引数にテーブル名を指定します。第2引数は、基本的に無名関数で、テーブル操作を指定します。

テーブルの作成及び削除の基本例を下記に記述しておきます。

基本例

//テーブルの作成
Schema::create('users',function($table){
$table->increments('id');
$table->string('name',100);
$table->string('email')->unique();
$table->text('description');
$table->timestamps();
});

//テーブルの削除
Schema::drop('users');

//存在確認後に削除
Scheme::dropIfExists('users');

テーブル更新

既存テーブルの更新には、Schema::tableメソッドを使用します。基本的に下記のように記述します。

Schema::table(テーブル,アクション)

Schema::tableメソッドは、第1引数にテーブル名を指定します。第2引数は、基本的に無名関数で、テーブル操作を指定します。

基本例

//テーブルの更新
Schema::table('users',function($table){
//nameカラムの追加
$table->string('name');
//MySQLならafterメソッドでカラム順番を指定できます
$table->string('email')->after('name');
});

//カラム名の変更
Schema::table('users',function($table){
//nameからusernameに変更
$table->renameColumn('name','username');
});

//カラム削除
Schema::table('users',function($table){
$table->dropColumn('username');
});

存在チェック

テーブルやカラムの存在をチェックするには、hasTableメソッドや、hasColumnメソッドを使用します。

基本例

//テーブルの存在を確認
if(Schema::hasTable('users')){
//usersテーブルがあったときのロジックを記述
}

//カラムの存在をチェック
if(Schema::hasColumn('users','email')){
//users,emailカラムがあったときのロジックを記述
}

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です