Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sprawdź, czy model laravela został zapisany lub czy zapytanie zostało wykonane

Sprawdź, czy model został zapisany

save() zwróci wartość logiczną, zapisaną lub nie zapisane. Możesz więc zrobić:

$saved = $myModel->save();

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

Lub bezpośrednio zapisz w jeśli:

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

Zauważ, że nie ma sensu wywoływanie save() dwa razy z rzędu, jak w twoim przykładzie. A tak przy okazji, wiele błędów lub problemów, które uniemożliwiłyby zapisanie modelu, i tak wyrzucą wyjątek...

Sprawdź, czy zapytanie zwróciło wynik

first() zwróci null gdy nie znaleziono żadnego rekordu, więc czek działa znajdź. Jednak jako alternatywę możesz również użyć firstOrFail() co automatycznie wyrzuci ModelNotFoundException gdy nic nie zostanie znalezione:

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

(To samo dotyczy find() i findOrFail() )

Sprawdź, czy zapytanie zostało wykonane

Niestety z create To nie jest takie proste. Oto źródło:

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

    $model->save();

    return $model;
}

Jak widać, utworzy nową instancję modelu z $attributes a następnie wywołaj save() . Teraz, jeśli save() gdzie zwrócić true, nie wiedziałbyś, ponieważ i tak dostaniesz instancję modelu. Możesz na przykład sprawdzić identyfikator modeli (ponieważ jest to dostępne tylko po zapisaniu rekordu i zwróceniu nowo utworzonego identyfikatora)

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepsze praktyki dla systemu wersjonowania danych mysql

  2. Zarządzaj MySQL za pomocą phpMyAdmin na Ubuntu 10.10 (Maverick)

  3. PHP MySQL i geolokalizacja

  4. 'OPCJA SQL_SELECT_LIMIT=DOMYŚLNE'

  5. Jak mogę bezpiecznie przechowywać hasło w MySQL i uwierzytelniać się w usługach zewnętrznych?