Laravel でのDB操作は 主に Eloquent (エロクアント)を使います。
Eloquentメソッドいろいろありますが、今回はリクエストをDBに保存する際に利用するfillメソッドを紹介します!!!
DBにデータを保存する時はプロパティがたくさんある場合にfillを使うと便利です。
fillメソッドだけでは保存できないですが、インスタンスを作成して、fillを使って属性の代入をしてくれます。
DBの保存処理はsaveメソッドを使います。
DBにデータを追加する
// model
// fillable か guarded のどちらかを指定する必要あり
protected $fillable = ['email','last_name','first_name','tel','gender'];
// controller
public function store(Request $request)
{
$user = new App\Models\User();
$user->fill(
[
'gender' => '男',
'email' => 'yamada@test.com',
'last_name' => '山田',
'first_name' => '太郎',
'tel' => '08012345678',
]);
$user->save();
}
DBのデータを更新する
データを更新する時に公式マニュアルからプロパティを指定して値を入れる方法が紹介されています。
$user = User::find(3);
$user->email = ”koizumi@test.com”;
$user->last_name = "小泉";
$user->first_name = "麻衣";
$user->tel = "09012345678";
$user->gender = "女";
$user->save();
しかし、これは更新したいプロパティがたくさんある場合は、一つ一つと並べないといけないので、
こういう時はfillを使うと便利です。
$user = User::find(3);
$user->fill (
[
'gender' => '女',
'email' => 'koizumi@test.com',
'last_name' => '小泉',
'first_name' => '麻衣',
'tel' => '09012345678',
]);
$user->save();
注意点
fill()を使うときにModelの$fillable指定を見に行くので、
カラムが追加された時などは$fillableの指定を忘れないでください!
忘れると保存できません。
まとめ
fill()を使うと結構便利ですね。また次回laravel 便利の機能を紹介します~
最近のコメント