Die Laravel-API verhindert mehrfaches Einfügen/Aktualisieren
P粉864594965
P粉864594965 2024-03-27 11:51:51
0
1
424

Ich habe eine Methode zum Senden von Benachrichtigungen auf meinem NoticeController.

Das Problem besteht darin, dass nicht erkannt werden kann, ob der API-Endpunkt mehrmals aufgerufen wird (z. B. doppelte Formularübermittlung vom Client) oder ob eine Benachrichtigung an den Studenten gesendet wird. Es führt zu doppelten Datensätzen in der Datenbank, wenn ich sie nur einmal einfügen muss.

 public function sendStudentNotice(Request $request, Registrant $registrant){

        $validated = $request->validate([
            'type' => 'required|in:success,error,warning,info',
            'message' => 'required|string'
        ]);

        //This is inserting new record each call
        $registrant->enrollmentLogs()->create($validated);

        return response()->json(['message' => 'A notice has been sent successfully!']);
    }

Es wäre besser, wenn ich alle storeupdate Methoden auf dem Controller schützen könnte, um solche Probleme zu verhindern.

P粉864594965
P粉864594965

Antworte allen(1)
P粉775723722

您可以使用 ->firstOrCreate([],[]) 方法而不是 create,它会首先检查数据库中第一个参数中给出的所有字段的记录,然后然后,如果它没有找到它,它将与第二个参数中的数据一起创建一个。

给你的例子:

$registrant->enrollmentLogs()->firstOrCreate($validated, []);
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!