我有一个设置表,我正在尝试更新。我的表是空的,我需要在其中插入一些数据。
我正在使用eloquent插入
$s = new Settings;
$s->language = request('language');
$s->sitename = request('sitename');
$s->user_id = Auth::id();
$s->save();
return redirect('settings');
我遇到过这个功能
$se = Settings::findOrNew($id); // if exist then update else insert
findOrNew
要求我在保存之前知道id。
如何在不知道id的情况下插入或更新(首先可能不存在)。
答案 0 :(得分:1)
那么你可以使用firstOrNew
既然你说你的基础是你想检查表中是否已经存在user_id
那么你将它用作条件而不是id
首先 - >你使用firstOrNew
这个功能是
检查条件是否存在然后如果它存在则只返回第一个现有数据
如果不只是插入新数据并返回新的插入数据
$s = User::firstOrNew(array('user_id' => Auth::id()));
然后 - >之后,您现在可以使用该对象并执行您想要执行的操作
$s->language = request('language');
$s->sitename = request('sitename');
$s->save();