Ich bin neu in Laravel. Bitte entschuldigen Sie die Frage des Neulings, aber wie finde ich heraus, ob ein Datensatz vorhanden ist?
$user = User::where('email', '=', Input::get('email'));
Was kann ich hier tun, um zu sehen, ob $user
eine Aufzeichnung vorliegt?
$user = User::where('email', '=', Input::get('email'));
Erstellen$user
Sie einfach eine Abfrage in , müssen Sie diese Abfrage ausführen.findOrFail()
ist eine Möglichkeit, diese Abfrage auszuführen.get()
wäre ein anderer Weg, einfirstOrFail()
andererAntworten:
Dies hängt davon ab, ob Sie anschließend mit dem Benutzer arbeiten oder nur prüfen möchten, ob einer vorhanden ist.
Wenn Sie das Benutzerobjekt verwenden möchten, falls vorhanden:
Und wenn Sie nur überprüfen möchten
Oder noch schöner
quelle
exists()
gegen einen nicht vorhandenen Datensatz aufrufen, wird ein FehlerCall to a member function exists() on null
first()
Eine der besten Lösungen ist die Verwendung der Methode
firstOrNew
oderfirstOrCreate
. Die Dokumentation enthält weitere Details zu beiden.quelle
quelle
exists()
Methode.Eloquent verwendet Sammlungen. Siehe den folgenden Link: https://laravel.com/docs/5.4/eloquent-collections
quelle
email
sodass->isEmpty()
ein Fehler ausgegeben wird.Call to a member function isEmpty() on null
Verwenden Sie
first()
, nicht,count()
wenn Sie nur auf Existenz prüfen müssen.first()
ist schneller, weil nach einer einzelnen Übereinstimmung gesucht wird, währendcount()
alle Übereinstimmungen gezählt werden.quelle
In Laravel eloquent, hat die Standard-Exist-Methode (), siehe folgendes Beispiel.
if(User::where('id', $user_id )->exists()){ // your code... }
quelle
Laravel 5.6.26v
um den vorhandenen Datensatz über den Primärschlüssel (E-Mail oder ID) zu finden
dann
include "use DB" und Tabellenname user werden unter Verwendung der obigen Abfrage wie user to users plural
quelle
Dadurch wird überprüft, ob die angeforderte E-Mail in der Benutzertabelle vorhanden ist:
quelle
In Ihrem Controller
In Ihrer Ansicht - Bereits vorhandene Nachricht anzeigen
quelle
required|unique:users,email|email
würde mit try / catch arbeiten
-> get () würde immer noch ein leeres Array zurückgeben
quelle
quelle
Es ist einfach herauszufinden, ob es Aufzeichnungen gibt oder nicht
quelle
quelle
Sie können die Laravel-Validierung verwenden.
Dieser Code ist aber auch gut:
quelle
Dadurch wird überprüft, ob in der Tabelle eine bestimmte E-Mail-Adresse vorhanden ist:
quelle
Überprüfen auf
null
innerhalbif
Anweisung verhindert Laravel von der Rückkehr 404 unmittelbar nach der Abfrage ist vorbei.Es scheint, als würde eine doppelte Abfrage ausgeführt, wenn der Benutzer gefunden wird, aber ich kann anscheinend keine andere zuverlässige Lösung finden.
quelle
find
mitwhere
.User::where(id, 1)->first()
kann geschrieben werden als
Dies gibt true oder false zurück, ohne eine temporäre Variable zuzuweisen, wenn dies alles ist, wofür Sie $ user in der ursprünglichen Anweisung verwenden.
quelle
Ich denke, der folgende Weg ist der einfachste Weg, um dasselbe zu erreichen:
quelle
Erstellt die folgende Methode (für mich), um zu überprüfen, ob die angegebene Datensatz-ID in der Db-Tabelle vorhanden ist oder nicht.
Zuhause Es hilft!
quelle
Der einfachste Weg zu tun
quelle
Laravel 6 oder oben: Schreiben Sie den Tabellennamen und geben Sie dann die where- Klauselbedingung an, z. B. where ('id', $ request-> id).
quelle
Um zu überprüfen, ob der Datensatz vorhanden ist, müssen Sie die Methode is_null verwenden, um die Abfrage zu überprüfen.
Der folgende Code könnte hilfreich sein:
quelle
Kürzeste Arbeitsmöglichkeiten:
quelle
Hier ist ein Link zu etwas, von dem ich denke, dass es https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/ helfen kann.
quelle
Dies ist ein einfacher Code, mit dem überprüft werden kann, ob E-Mails in der Datenbank vorhanden sind oder nicht
quelle