Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kiểm tra xem mô hình laravel đã được lưu hay truy vấn đã được thực thi chưa

Kiểm tra xem mô hình đã được lưu chưa

save() sẽ trả về boolean, đã lưu hoặc không đã lưu. Vì vậy, bạn có thể làm:

$saved = $myModel->save();

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

Hoặc lưu trực tiếp vào if:

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

Lưu ý rằng không hợp lý khi gọi save() hai lần liên tiếp như trong ví dụ của bạn. Và nhân tiện, nhiều lỗi hoặc sự cố khiến mô hình không được lưu sẽ dẫn đến ngoại lệ ...

Kiểm tra xem truy vấn có trả về kết quả không

first() sẽ trả về null khi không có bản ghi nào được tìm thấy để séc của bạn hoạt động tìm thấy. Tuy nhiên, thay vào đó, bạn cũng có thể sử dụng firstOrFail() sẽ tự động ném ra một ModelNotFoundException khi không tìm thấy gì:

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

(Điều này cũng đúng với find()findOrFail() )

Kiểm tra xem truy vấn đã được thực thi chưa

Thật không may với create nó không dễ như thế đâu. Đây là nguồn:

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

    $model->save();

    return $model;
}

Như bạn có thể thấy, nó sẽ tạo một phiên bản mới của mô hình với các thuộc tính $attributes và sau đó gọi save() . Bây giờ nếu save() nơi trả về true bạn sẽ không biết vì dù sao thì bạn cũng sẽ nhận được một phiên bản mô hình. Những gì bạn có thể làm chẳng hạn là kiểm tra id mô hình (vì id đó chỉ khả dụng sau khi bản ghi được lưu và id mới tạo được trả về)

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. Tắt priv an toàn để tải dữ liệu trên MySQL

  2. Cách khắc phục Cảnh báo MySQL của Cố vấn Bảo mật

  3. xoay trong các truy vấn mysql

  4. Đăng nhập NHẬN hoặc ĐĂNG?

  5. Lỗi nghiêm trọng:Đã vượt quá thời gian thực thi tối đa 30 giây trong C: