Laravelで業務システム

Laravel関連の記事掲載してます

顧客マスタテーブルを作成してみる

メニューもできたので顧客マスタ画面の開発を行うわけですが、まずは、メインのテーブル作成を始めたいと思います。

テーブル作成はDBに直接SQLを流すオーソドックスな方法でもいいのですが、Laravelではマイグレーションファイルを作成しそこにテーブル情報を記述し、ArtisanコマンドでDBに反映させる方法が普通なようです。

こうすることで、履歴を残したり、ロールバックができたりするので、チーム開発する際、役に立つようです。

さっそく、マイグレーションファイルを作成するわけですが、ベースファイルもArtisanコマンドで生成できます。

今回はModelファイルも併せて作成することを考えており、プロジェクトフォルダ内で以下のように、シェルにタイプし実行しました。

php artisan make:model Customer -m

これは、"Customer"というモデルファイルを作って"customers"というテーブルのマイグレーションファイルを同時に生成させるものです。

この名称ルールはORMによるもので、テーブル名は別名にすることも可能です。ただ、こういった命名規約系はある程度統一させといたほうがチーム開発ではベターだとは思います。

尚、さらっと出した、モデルについてですが、LaravelはMVCという設計思想に基づくフレームワークで、この思想の"M"の部分になり"データの管理や手続き"を担うものです。

まあ、テーブルを操作するモデルクラスを作ってそのクラスからテーブルにアクセスさせるイメージでしょうかね。

尚、モデルを使わなくても一応開発できるようです。

つぎに生成されたマイグレーションファイルにテーブル情報を記述します。

マイグレーションファイルは"databese"フォルダに入っており、今回は以下のように"create"ファンクションに作成するテーブルの情報を記述しました。

$table->bigIncrements('id');
$table->Text('customer_id');
$table->Text('customer_nm');
$table->longText('customer_addr')->nullable();
$table->Text('customer_tel')->nullable();
$table->Text('customer_fax')->nullable();
$table->longText('note')->nullable();
$table->integer('status')->defalut('1');
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP'));

この記述方法について詳しくしりたい方はLaravelの公式ページみていただきたいのですが、データベースの知識ある方なら、なんとなく何がしたいかはわかるのではなないでしょうかね。

記述できたら、以下、Artisan コマンドを実行すると、テーブルが作成されます。

#php artisan migrate

どうでもいい話ですが、Laravelの公式ページみたらORMであるEloquentを使うとデータベースとの対話を楽しくすることができると書いてました。なんかこれを聞いて、ORMの理解が深まった気がします。

ただし、テーブルの設計書やER図はいずれにしてもあったほうがいいですね。

今日はここまで。ようやく次回から、画面の開発にはいれるかな。