我的应用程序将保存用户的IP和时间戳,一旦他们访问一个特定的页面。
if (! auth()->check()) {
$attributes = [
'type' => 'Visited',
'description' => 'The proposal was recently visited by someone with IP address '.\request()->getClientIp(),
'ip' => \request()->getClientIp()
];
(new ProposalLogController())->store($proposal, $attributes);
}
下面是我如何存储所有的详细信息与IP:
public function store($proposal, $attributes)
{
$proposalLog = new ProposalLog();
$proposalLog->proposal_id = $proposal->id;
$proposalLog->event_type = $attributes['type'];
$proposalLog->event_description = $attributes['description'];
$proposalLog->ip_address = $attributes['ip'];
$proposalLog->user_name = $attributes['user']??'';
$proposalLog->save();
}
当用户重新加载或刷新页面时,碰巧再次保存了相同的IP地址和时间戳。防止提交相同的IP地址、时间戳或任何处理此问题的laravel特定函数的最佳方法是什么?
1条答案
按热度按时间carvr3hs1#
一种方法是使用唯一的验证规则来防止保存重复的IP地址和时间戳。