【Laravel】Eloquentの備忘録チートシート
目次
Eloquent ORMとは
LaravelにおけるDBの操作をSQL文じゃなく、PHPのオブジェクト感覚で操作できる。
※ ORMはデータベースとオブジェクト指向プログラミング言語の間の非互換なデータを変換するプログラミング技法です。
Eloquentチートシート
これ以降、
- モデル=Chatmsg
- Chatmsgと連動してるテーブルはreply_messages
Chatmsg::all();<全データを取得>
Chatmsgのテーブルに登録されている全てのデータを取得
Chatmsg::all(); //output [{"id":1,"msg":"\u304a\u306f\u3088\u3046\uff01","created_at":null,"updated_at":null}, {"id":2,"msg":"\u3063\u3061","created_at":"2019-08-11 00:42:30","updated_at":"2019-08-11 00:42:30"}, {"id":3,"msg":"\u3063\u3061","created_at":"2019-08-11 00:43:25","updated_at":"2019-08-11 00:43:25"}, {"id":4,"msg":"\u3063\u3061","created_at":"2019-08-11 00:43:42","updated_at":"2019-08-11 00:43:42"}]
Chatmsg::find();<特定のidの値を取得>
指定したidのデータを取得する
$chats = Chatmsg::find(1); //output {"id":1,"msg":"\u304a\u306f\u3088\u3046\uff01","created_at":null,"updated_at":null}
文字化けするので、文字化け解消するミドルウェアを挟んであげるといい感じになる。
Chatmsg::find()->key;<特定のkeyの値を取得>
$chats = Chatmsg::find(1)->msg; //output おはよう!
migration file
Schema::create('テーブル名', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('msg'); <-ここ $table->timestamps(); });
count(Chatmsg::all());<データの数を調べたい(レコード数)>
count(Chatmsg::all()); //output (50のレコードが存在している) 50
モデルのインスタンス生成
基本的にDBに登録する際に使用する。
下記の場合は、各属性を指定してDBに保存している。
※ $requestはPost送信で送られたデータ(keyにmsgと指定したvalueを取得)
public function store(Request $request){ $chatmsg = new Chatmsg; $chatmsg->msg = $request->msg; : $chatmsg->save() }