LaravelでRailsのようにターミナル(bash)でモデルを使ってDBのデータを取得する方法について。
対処法
php artisan tinker
でphpの対話モードに入ることでモデルを介してDBのデータを取得できる。
$php artisan tinker
>>> モデルの名前空間::メソッド;
## 実例 名前空間`App\Models\User`の中のデータのid=1のデータを抽出する。
$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.2.8 — cli) by Justin Hileman
>>> App\Models\User::find(1)
=> App\Models\User {#4239
id: 1,
name: "admin",
email: "example@gmail.com",
created_at: "2018-10-06 00:10:15",
updated_at: "2019-01-24 21:16:54",
}
>>>
find(id番号)
指定したid番号のデータを取得する。
例
>>> App\Models\User::find(5)
find(1)
はfirst()
と同じ。
#### `all()` 全データを抽出
例
>>> App\Models\User::all()
#### `where('カラム名', 値)` 条件に一致するデータを抽出。whereのみではcollection型で出力されるため、データを表示するためには`first()`をつける
例
>>> App\Models\User::where('id', 3)->first()
#### `toSql()` SQLクエリを抽出する。
例
>>> App\Models\Article::where('id', 3)->toSql();
=> "select * from `articles` where `id` = ?"