これまでの実装例
例えばメールアドレスに紐づくユーザーを検索して、
いない場合は新規作成する場合のソースがこちら
<?php
// (省略)
public function store(Request $request)
{
$data = $request->all();
$targetUser = User::where('email', $data['email'])->first();
if (empty($targetUser)) {
$targetUser = new User();
}
$targetUser->fill($data)->save();
}
firstOrNewを使うと
<?php
// (省略)
public function store(Request $request)
{
$data = $request->all();
$targetUser = User::firstOrNew(['email', $data['email']]);
$target->fill($data)->save();
}
簡略化されて良き
firstOrCreate
は即時にDBレコードが作られてしまうので、
fillやらあれこれしたい場合はfirstOrNew
を使う
LaravelでfirstOrNewメソッドを活用するとソースがすっきりしたのでメモ