■下準備
事前の準備として、ファイル “AppServiceProvider.php” を修正。
*アプリケーション作成の都度実施
public function boot() { // }
この//に以下を入れて保存します。
\Schema::defaultStringLength(191);
■ マイグレーションファイルの作成
以下コマンドを入力してマイグレーションファイルを作成。
$ php artisan make:migration xxx --create=xxxxs*xxxはファイル名
* xxxsはテーブル名(小文字&複数形必須) *マイグレーションを実行する際は、MYSQLサーバーが立ち上がっている前提。
作成したファイルはdatabase/migrationsフォルダに生成される。
マイグレーションファイルを修正(例:ストリング型のcontentカラム作成)
$table->string('content');
以下コマンドでファイルを更新
$ php artisan migrate
尚、たった今migrateしたファイルの中身を再度修正したい場合は、以下を行ってから、
$ php artisan migrate:rollback
ファイルを修正の上、
$ php artisan migrate
■ マイグレーションファイルの確認
MySQL ログイン
$ mysql -u root
DB選択
mysql> use message-board
テーブル一覧確認
mysql> show tables;
テーブル設計確認
mysql> describe messages;
■ モデルの生成
*マイグレーションができていないと作成できない
$ php artisan make:model xxx
*モデルは、app直下に生成。
*モデルのクラス名: 頭文字大文字 x 単数形
ex. Ring(1単語例) UserRing(2単語例)
■ モデルの一覧確認
$php artisan tinker >>> App\xxx::all()
【モデルのCRUD関数の記述型】
モデル名::関数 or モデルのインスタンス->関数
2-1 CRUD操作(Create)
モデルのインスタンスを作成
>>> $xxx = new App\xxx
モデルのインスタンスの中身を確認
>>> $xxx
モデルのインスタンスに値を代入
>>> $xxx->content = 'aaa'
モデルのインスタンスをDBに保存
>>> $message->save()
2-2 CRUD操作(Read)
レコード全体を取得:all()
>>> App\xxx::all()
最初のレコードを取得:first()
>>> $xxx = App\xxx::first()
IDから合致するレコードを取得:find(x)
>>> $xxx = App\xxx::find()
条件指定:where()->get()
>>> $xxx = App\xxx::where('aaa', 'bbb')->get()
*この場合 aaa = bbbの扱いになる
ex. where('id', '<', '10')->get() ex. where('aaa', 'bbb', 'ccc%') ex. where('aaa', 'bbb')->first()
2-3 CRUD操作(Update)
パターン1
>>> $message->status = 'finished' >>> $message->save();
パターン2
ex. App\xxx::where('id', 20)->update(['status' => 'finished'])
2-4 CRUD操作(Delete)
パターン1
>>> App\xxx::destroy([1, 2]) >>> $message->save();
パターン2
$message = App\Message::first() ex.$xxx->delete()
*先にインスタンスを呼び出す必要あり