0

私は Laravel 5.8 を使用しており、ユーザーが (セッションが有効である限り) 2 時間ごとにのみフォームを送信できるようにしたいと考えていました。

だから私はコントローラーでこれを試しました:

if(Session::has('request_has_been_sent')){
    return redirect()->back()->with('error', 'You just submitted a request and cannot submit a new one');
}else{
    $withDraw = WithdrawWallet::create([
        'balance_value' => $request->balance_wallet,
        'can_draw' => $request->can_draw,
        'shaba_number' => $request->shaba_number,
        'first_name' => $request->first_name,
        'last_name' => $request->last_name,
        'description' => $request->desc,
        'status' => 'pending',
        'user_id' => auth()->user()->usr_id,
    ]);
    Session::put('request_has_been_sent');
}

return redirect()->back()->with('success','Your request was sent');

これにより、ユーザーが新しいリクエストを送信するたびに、セッションrequest_has_been_sentを設定する必要があります。

したがって、次回ユーザーがフォームを送信したときに、セッションがまだ有効である場合は、メッセージYou just submitted a request and cannot submit a new oneが表示されます。

しかし今、問題はそれが機能しないことです。実際、ユーザーはリクエストを送信した直後に別のリクエストを送信できます。

これは、何らかの形でセッションが設定されていないことを意味します。

それで、ここで何がうまくいかないのですか?どうすればこれを適切に行うことができますか?

4

3 に答える 3