Laravel学習帳

Laravel5.2の学習帳です。開発環境はXAMPP for Windows 5.6.19 / 本番環境はさくらサーバー(スタンダード)

チュートリアル

DBのテーブルとモデルの作成

2017/02/15

step02

Laravel5.2にあるマイグレーション機能を使ってDBのテーブルおよびモデルを作成します。

 

目標

  • DBのテーブルの作成
  • 上記のテーブルに対応したモデルの作成

 

事前知識

Laravelのマイグレーション機能について理解しておく必要があります。

マイグレーションについて

 

テーブルの仕様

テーブル名 crud

  • 名前
  • メールアドレス
  • 性別
  • 年齢
  • 都道府県
  • 誕生日
  • 電話番号

 

進め方

【1】マイグレーションファイルの生成

【2】マイグレーションファイルの編集

【3】マイグレーションの実行

【4】モデルの作成

【5】tinkerコマンドでレコードの挿入

【6】動作確認

 

【1】マイグレーションファイルの生成

php artisan make:migration create_crud_table --create=crud
【解説】
オプションで同時にテーブル(crud)も作成
マイグレーションファイル名はcreate_{テーブル名}_tableとつけるのが通例

 

【2】マイグレーションファイルの編集

生成されたマイグレーションファイルのup()に以下を追記します。

:
$table->increments('id');
$table->string('name', 32); /* 追加 */
$table->string('mail');     /* 追加 */
$table->string('gender');   /* 追加 */
$table->integer('age');     /* 追加 */
$table->string('pref');     /* 追加 */
$table->string('birthday'); /* 追加 */
$table->string('tel',11);   /* 追加 */
$table->timestamps();
:

 

【3】マイグレーションの実行

編集したマイグレーションファイルを実行してDBのテーブル反映させるには以下のコマンドを入力します。

$ php artisan migrate

ここで一旦ちゃんとcrudテーブルができたか確認してみます。

XAMPPのphpMyAdminで確認

 

【4】モデルの作成

テーブルができたので次はそのテーブルに対応するモデルを作ります。

Artisanコマンドを使ってcrudテーブルに対応するモデルを作成します。

モデル名はCrudにします。

php artisan make:model Crud

Artisanコマンドで自動生成されたapp/Crud.phpを編集します。

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Crud extends Model
{
    /**
     * モデルと関連しているテーブル
     *
     * @var string
     */
     protected $table = 'crud';
}
【解説】
モデルのtableプロパティを定義し、カスタムテーブル名"crud"を指定します。
テーブル名が複数形(cruds)でモデル名が単数形(crud)の場合は上記の記述はいりません。
自動的にテーブルとモデルが紐付けされます。
今回"cruds"という名前が気に入らなかったので通例とは違ったやり方をしています。

 

【5】tinkerコマンドでレコードの挿入

tinkerコマンドを使ってレコードを追加してみます。

php artisan tinker
$crud = new App\Crud();
$crud->name = 'abe naoto';
$crud->mail = 'abe_naoto@example.com';
$crud->gender = 'man';
$crud->age = '21';
$crud->pref = 'Fukui';
$crud->birthday = '1994/12/24';
$crud->tel = '080-5808-7152';

$crud->save();
【解説】
コマンドプロンプトから日本語入力すると文字化けが発生するので、全て半角英数字で入力します。

 

【6】動作確認

XAMPPのPhpMyAdminでレコードが挿入されているか確認

以上です。

 

-チュートリアル