🧑💻
【Laravel】updateOrCreateメソッドを利用して登録・更新ロジックを共通化
概要
updateOrCreate
メソッドを利用することで登録・更新処理をシンプルにしてみた
変更前のロジック
- 更新時は
save()
・登録時はcreate()
メソッドを実行している
<?php
/**
* 登録・更新
* @param array $request
* @param int|null $id
* @return bool|Builder|Model
*/
public function store(array $request, ?int $id = null)
{
$isEdit = !is_null($id);
if ($isEdit) {
return (User::query()->findOrFail($id))->fill($request)->save();
}
return GoodsCategories::query()->create($request);
}
変更後のロジック
updateOrCreate(array 検索対象のカラム=>レコード, array 登録・更新データ)
を利用することで、更新時・登録時の処理を共通化することができます
/**
* 登録・更新
* @param array $request
* @param $id
* @return array
*/
public function store(array $request, $id = null)
{
// 登録ずみIDがあれば更新・なければ登録
return User::query()->updateOrCreate(
['id' => $id],
$request
);
}
最後に
読んでいただきありがとうございます。
今回の記事はいかがでしたか?
・こういう記事が読みたい
・こういうところが良かった
・こうした方が良いのではないか
などなど、率直なご意見を募集しております。
Discussion