sql >> Databáze >  >> RDS >> Mysql

Zkontrolujte, zda byl model laravel uložen nebo zda byl proveden dotaz

Zkontrolujte, zda byl model uložen

save() vrátí boolean, uloženo nebo ne uložené. Takže můžete buď:

$saved = $myModel->save();

if(!$saved){
    App::abort(500, 'Error');
}

Nebo přímo uložit do if:

if(!$myModel->save()){
    App::abort(500, 'Error');
}

Všimněte si, že nedává smysl volat save() dvakrát za sebou jako ve vašem příkladu. A mimochodem, mnoho chyb nebo problémů, které by bránily uložení modelu, stejně vyvolá výjimku...

Zkontrolujte, zda dotaz vrátil výsledek

first() vrátí null když není nalezen žádný záznam, tak vaše kontrola funguje najít. Jako alternativu však můžete také použít firstOrFail() což automaticky vyvolá výjimku ModelNotFoundException když není nic nalezeno:

$UserProduct = Product::where('seller_id', '=', $userId)->firstOrFail();

(Totéž platí pro find() a findOrFail() )

Zkontrolujte, zda byl dotaz proveden

Bohužel s create není to tak jednoduché. Zde je zdroj:

public static function create(array $attributes)
{
    $model = new static($attributes);

    $model->save();

    return $model;
}

Jak můžete vidět, vytvoří se nová instance modelu s $attributes a poté zavolejte save() . Nyní, pokud save() kam vrátit true byste nevěděli, protože byste stejně získali instanci modelu. Můžete například zkontrolovat ID modelu (protože to je dostupné až po uložení záznamu a vrácení nově vytvořeného ID)

if(!$newUser->id){
    App::abort(500, 'Some Error');
}


  1. Rozdíl mezi UNIX_TIMESTAMP a NOW() v MySQL

  2. Jak najít cestu pg_config

  3. Vypočítejte časový rozdíl mezi dvěma řadami

  4. Jak ukládat obrázky do databáze MySQL