Я хочу создать данные, но если данные уже в базе данных, они обновятся. но если данных еще нет в базе данных, будут созданы новые данные.
это мой контроллер
public function store(Request $request)
{
$real = SpentTime::findOrCreate([
'plan_id' => $request->get ('plan_id'),
'daily_spent_time' => $request->get ('daily_spent_time'),
'daily_percentage' => $request->get ('daily_percentage'),
'reason' => $request->get ('reason')
]);
return redirect()->route('real.index', compact( 'reals'));
}
это моя модель
public static function findOrCreate($plan_id)
{
$real = SpentTime::find($plan_id);
return $real ?: new SpentTime;
}
когда я делаю данные уже в базе данных, данные не обновляются.






Попробуй это
public function store(Request $request)
{
$real = SpentTime::findOrCreate($request->get('plan_id'),[
'plan_id' => $request->get ('plan_id'),
'daily_spent_time' => $request->get ('daily_spent_time'),
'daily_percentage' => $request->get ('daily_percentage'),
'reason' => $request->get ('reason')
]);
return redirect()->route('real.index', compact( 'reals'));
}
public static function findOrCreate($plan_id,$data)
{
$real = static::where('plan_id',$plan_id)->first();
if (is_null($real)) {
return static::create($data);
} else {
return $real->update($data);
}
}
ошибка ошибки
@NaKoriah проверьте, я обновил свой ответ
что случилось ? 3.bp.blogspot.com/-7TLnRJtLOwo/W72aKhRlP9I/AAAAAAAAA4U/…
@NaKoriah снова попробуй
ошибка Undefined variable: record
оно работает. большое спасибо, сэр. просто замените $record на $real
@NaKoriah добро пожаловать
Попробуйте вот так
$user = User::firstOrNew(array('name' => Input::get('name')));
$user->foo = Input::get('foo');
$user->save()
в моем контроллере?
@NaKoriah да, вам нужно добавить это в свой контроллер
ничего не меняется. нечего обновлять
это внутренняя функция laravel, вы можете прочитать это здесь https://laravel.com/docs/5.7/eloquent#retrieving-single-models и найти этот firstOrCreate.
Используйте
updateOrCreate(): laravel.com/docs/eloquent#inserting-and-updating-models