Avatar ·

Überprüfung der Existenz eines Datensatzes in Laravel: Richtige Methoden und häufige Fehler

Hallo zusammen! Ich bin neu in Laravel und PHP und schreibe mein erstes Projekt – einen einfachen Blog. Ich habe ein Modell Post und eine Tabelle posts. Bevor ich einen neuen Beitrag hinzufüge, muss ich prüfen, ob bereits ein Datensatz mit demselben Titel (slug) existiert. Ich habe mehrere Varianten ausprobiert, aber ich habe das Gefühl, dass ich etwas falsch mache.

Hier ist mein aktueller Code im Controller:

public function store(Request $request)
{
    $slug = $request->input('slug');
    $existing = DB::table('posts')->where('slug', $slug)->get();
    if (count($existing) > 0) {
        return back()->with('error', 'Ein solcher slug existiert bereits');
    }
    // ... Speicherung
}

Aber ich habe gelesen, dass die Verwendung von count() und get() dafür ineffizient ist, besonders wenn die Tabelle groß ist. Außerdem habe ich gesehen, dass jemand first(), exists() oder doesntExist() verwendet. Und es gibt auch die Methode find() zur Überprüfung anhand der ID.