Добрый вечер. Грубо говоря, есть примерно такой код.
public function GenerateUser($first_name, $last_name)
{
$isset = User::where('first_name', $first_name)
->where('last_name', $last_name)->first();
$response = null;
if (isset($isset)) {
$response = User::where('first_name', $first_name)
->where('last_name', $last_name)->first();
} else {
$response = new User();
$response->first_name = $first_name;
$response->last_name = $last_name;
$response->save();
}
return response()->json($response);
}
Работать должно следующим образом. Приходят 2 параметры, проверяем в базе в таблице users есть ли там уже такой юзер. Если есть, возвращаем модель, ничего в базу не пишем. Если нет, возвращаем модель и пишем ее в базу. Работает этот кусок кода нормально, но надо сделать как то с помощью вышеперечисленных методов, чтоб уменшить все это дело и повысить читаемость. Пробовал по всякому, примерно так
public function GenerateUser($first_name, $last_name)
{
$response = User::firstOrNew([
'first_name' => $first_name,
'last_name' => $last_name,
]);
$response->save();
return response()->json($response);
}
Возвращает модель, но и пишет в базу в есть ли там такая запись или нет. Без save() не сохраняет. Пробовал другие подобные методы, результат примерно такой же. Как это решить?