Ich bin neu in Laravel. Bitte entschuldigen Sie die Neuling-Frage, aber wie finde ich, ob ein Datensatz existiert?
<?php
$user = User::where('email', '=', Input::get('email'));
Was kann ich hier tun, um zu sehen, ob $user
einen Datensatz hat?
Es 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:
$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
// user doesn't exist
}
Und wenn Sie nur prüfen wollen
if (User::where('email', '=', Input::get('email'))->count() > 0) {
// user found
}
Oder noch schöner
if (User::where('email', '=', Input::get('email'))->exists()) {
// user found
}
Eine der besten Lösungen ist die Verwendung der Methode firstOrNew
oder firstOrCreate
. Die Dokumentation enthält mehr Details zu beiden.
if($user->isEmpty()){
// has no records
}
Eloquent verwendet Sammlungen. Siehe folgenden Link: https://laravel.com/docs/5.4/eloquent-collections
if (User::where('email', Input::get('email'))->exists()) {
// exists
}
Laravel 5.6.26v
den vorhandenen Datensatz über den Primärschlüssel (E-Mail oder ID) finden
$user = DB::table('users')->where('email',$email)->first();
dann
if(!$user){
//user is not found
}
if($user){
// user found
}
include "use DB" und Tabellenname user werden unter Verwendung der obigen Abfrage wie user an users zu Plural
if (User::where('email', '[email protected]')->first())
// It exists
else
// It does not exist
Verwenden Sie first()
, nicht count()
, wenn Sie nur auf Existenz prüfen müssen.
first()
ist schneller , weil es auf ein einzelnes Match prüft, während count()
alle Matches zählt.
if ($u = User::where('email', '=', $value)->first())
{
// do something with $u
return 'exists';
} else {
return 'nope';
}
würde mit try/catch funktionieren
-> get () würde immer noch ein leeres Array zurückgeben
Unten erstellte Methode (für mich), um zu überprüfen, ob die angegebene Datensatz-ID in der Db-Tabelle vorhanden ist oder nicht.
private function isModelRecordExist($model, $recordId)
{
if (!$recordId) return false;
$count = $model->where(['id' => $recordId])->count();
return $count ? true : false;
}
// To Test
$recordId = 5;
$status = $this->isModelRecordExist( (new MyTestModel()), $recordId);
Zuhause hilft es!
Ich denke, unten ist der einfachste Weg, um dasselbe zu erreichen:
$user = User::where('email', '=', $request->input('email'))->first();
if ($user) {
// user doesn't exist!
}
hier ist ein Link zu etwas, von dem ich denke, dass es helfen kann https://laraveldaily.com/dont-check-record-exists-methods-orcreate-ornew/
In laravel eloquent, hat default exists () Methode, siehe folgendes Beispiel.
if(User::where('id', $user_id )->exists()){ // your code... }
$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
// user doesn't exist
}
kann als geschrieben werden
if (User::where('email', '=', Input::get('email'))->first() === null) {
// user doesn't exist
}
Dies gibt true oder false zurück, ohne eine temporäre Variable zuzuweisen, wenn Sie $ user in der ursprünglichen Anweisung verwenden.
sie können Laravel-Validierung verwenden.
Aber dieser Code ist auch gut:
$user = User::where('email', $request->input('email'))->count();
if($user > 0)
{
echo "There is data";
}
else
echo "No data";
Es ist einfach zu erfahren, ob es Aufzeichnungen gibt oder nicht
$user = User::where('email', '=', Input::get('email'))->get();
if(count($user) > 0)
{
echo "There is data";
}
else
echo "No data";
Dadurch wird geprüft, ob eine bestimmte E-Mail-Adresse in der Tabelle vorhanden ist:
if (isset(User::where('email', Input::get('email'))->value('email')))
{
// Input::get('email') exist in the table
}
$email = User::find($request->email);
If($email->count()>0)
<h1>Email exist, please make new email address</h1>
endif
Sehr einfach
if (User::where('email', $request->input('email')->first())
{
// User exists
} else{
// User does not exist
}
passwort des gleichen Benutzers erhalten als
$user = User::where('email', '=', $email)->first();
$user->password
dd($user);
Vielen Dank
Dies überprüft, ob die angeforderte E-Mail in der Benutzertabelle vorhanden ist:
if (User::where('email', $request->email)->exists()) {
//email exists in user table
}
Die Prüfung auf null
in der Anweisung if
hindert Laravel daran, 404 unmittelbar nach Beendigung der Abfrage zurückzugeben.
if ( User::find( $userId ) === null ) {
return "user does not exist";
}
else {
$user = User::find( $userId );
return $user;
}
Es scheint, als würde eine doppelte Abfrage ausgeführt, wenn der Benutzer gefunden wird, aber ich kann keine andere zuverlässige Lösung finden.
$user = User::where('email', request('email')->first();
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist');
In deinem Controller
$this->validate($request, [
'email' => 'required|unique:user|email',
]);
In Ihrer Ansicht - Bereits vorhandene Nachricht anzeigen
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif