2 回答
TA贡献1895条经验 获得超7个赞
我有一个表单,我在其中向 db 添加了一些数据,但是如果用户多次单击按钮,我想避免重复记录,我可以使用 JS 禁用该按钮,但我也想在服务器端进行一些检查。
目前在表单上,我正在设置一个带有随机数的会话变量,并使用文本框(隐藏)将其发送到控制器,然后在控制器中检查会话变量是否等于文本框,然后添加到 db - 但数据仍然在 db 中多次添加,如果有人可以提供帮助,我们将不胜感激。谢谢。
控制器:
if ($request->token == session('test')){
session()->forget('test');
sleep(20); (this i added in order to test)
TableName::create([
'code' => 'test',
'name' => 'testing',
]);
return "done";
} else {
return "stopped";
}
刀刃:
{{session(['test'=> rand()])}}
<input type="text" value="{{session('test')}}" name="token">
TA贡献1864条经验 获得超6个赞
Laravel 中有两种方法firstOrCreate或firstOrNew。
参考https://laravel.com/docs/5.8/eloquent
firstOrNew 方法,如 firstOrCreate 将尝试在数据库中定位匹配给定属性的记录。但是,如果没有找到模型,则会返回一个新的模型实例
// Retrieve flight by name, or create it with the name, delayed, and arrival_time attributes...
$flight = App\Flight::firstOrCreate(
['name' => 'Flight 10'],
['delayed' => 1, 'arrival_time' => '11:30']
);
- 2 回答
- 0 关注
- 214 浏览
添加回答
举报