409 Stimmen

Laravel Überprüfen, ob ein Datensatz vorhanden ist

Ich bin neu bei Laravel. 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 einen Datensatz hat?

0voto

rc.adhikari Punkte 1626

Erstellte untenstehende Methode (für mich selbst), um zu überprüfen, ob die angegebene Datensatz-ID in der Db-Tabelle existiert oder nicht.

private function isModelRecordExist($model, $recordId)
{
    if (!$recordId) return false;

    $count = $model->where(['id' => $recordId])->count();

    return $count ? true : false;
}

// Zum Testen
$recordId = 5;
$status = $this->isModelRecordExist( (new MyTestModel()), $recordId);

Zuhause Es hilft!

0voto

Lord Punkte 5685

Laravel 6 oder oben: Schreiben Sie den Tabellennamen, geben Sie dann die Bedingung für die where-Klausel an, z.B. where('id', $request->id)

 public function store(Request $request)
    {

        $target = DB:: table('categories')
                ->where('title', $request->name)
                ->get()->first();
        if ($target === null) { // tun, was auch immer Sie tun müssen
            $cat = new Category();
            $cat->title = $request->input('name');
            $cat->parent_id = $request->input('parent_id');
            $cat->user_id=auth()->user()->id;
            $cat->save();
            return redirect(route('cats.app'))->with('success', 'App erfolgreich erstellt.');

        }else{ // Übereinstimmung gefunden
            return redirect(route('cats.app'))->with('error', 'App existiert bereits.');
        }

    }

0voto

Rahul Jat Punkte 706

Der einfachste Weg, dies zu tun

    public function update(Request $request, $id)
{

    $coupon = Coupon::where('name','=',$request->name)->first(); 

    if($coupon->id != $id){
        $validatedData = $request->validate([
            'discount' => 'required',   
            'name' => 'required|unique:coupons|max:255',      
        ]);
    }

    $requestData = $request->all();
    $coupon = Coupon::findOrFail($id);
    $coupon->update($requestData);
    return redirect('admin/coupons')->with('flash_message', 'Coupon aktualisiert!');
}

0voto

Hamid Teimouri Punkte 472

Sie können die Laravel-Validierung verwenden, wenn Sie einen eindeutigen Datensatz einfügen möchten:

$validiert = $request->validate([
    'title' => 'required|unique:usersTable,emailAddress|max:255',
]);

Sie können jedoch auch diese Wege verwenden:

1:

if (User::where('email',  $request->email)->exists())
{
  // Objekt existiert
} else {
  // Objekt nicht gefunden
}

2:

$user = User::where('email',  $request->email)->first();

if ($user)
{
  // Objekt existiert
} else {
  // Objekt nicht gefunden
}

3:

$user = User::where('email',  $request->email)->first();

if ($user->isNotEmpty())
{
  // Objekt existiert
} else {
  // Objekt nicht gefunden
}

4:

$user = User::where('email',  $request->email)->firstOrCreate([
      'email' => 'email'
],$request->all());

-1voto

Der effizienteste Weg, um zu überprüfen, ob der Datensatz existiert, besteht darin, die Methode is_null zu verwenden, um gegen die Abfrage zu prüfen.

Der folgende Code könnte hilfreich sein:

$user = User::where('email', '=', Input::get('email'));
if(is_null($user)){
 //Benutzer existiert nicht...
}else{
 //Benutzer existiert...
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X