Home / ITスキル / PHP-Laravel / PHP/Laravel モデルの作成

PHP/Laravel モデルの作成

■下準備

事前の準備として、ファイル “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()

*先にインスタンスを呼び出す必要あり

Check Also

Laravelの立ち上げからDB作成・接続

1. composer をイン …