Eloquentを使う時はQuery Builderに処理が移行しないように使うことが重要 ==== SQLだけ知ってる人が新たにLaravelを使おうとするとSQLで見たことあるメソッドを使おうとする。 ```php use App\Models\Post; Post:::insert([]); ``` 「LaravelのEloquentを使って、レコードの追加はinsert…」何も間違ってないように見えるけどこれが壮大な罠。 Eloquentを使ってるように見えるけど実際はQuery Builderに処理が移行している。 「EloquentにないメソッドはQuery Builderのメソッドが使われる」 Laravel内部で勝手に移されてるので知ってないとEloquentを使ってるつもりのままずっと間違える。 `$fillable`はEloquentの機能なのでQuery Builderでは無効。 Eloquentを使ってるつもりでQuery Builderを使うと`$fillable`のような安全機能が無視されるので非常に危険。 ここまで理解しているLaravelに慣れてる人は「Eloquentの機能しか使わない」対策をしている。 新規作成 ```php $post = Post::create([]): ``` 更新 ```php $post->fill([])->save(); ``` この辺はLaravelを使っていれば自然と身に付く定番の型なので覚える。 `create()` `fill()` `save()` どれもQuery BuilderにはないのでうっかりでもQuery Builderに移行していたらメソッドがなくエラーで落ちるから必ず気付く。