2015-04-20 16 views
16

Thông thường khi tôi gọi Model->save(), nó tạo bản ghi mới trong cơ sở dữ liệu thành công. Tôi đang cố gắng gỡ lỗi một tình huống khi không có gì xảy ra và Model->save() trả về false. Làm cách nào để tìm hiểu điều gì đang xảy ra?Laravel Model-> save() trả về false nhưng không có lỗi

$user = new User; 
$user->fields = 'example'; 
$user->save(); // returns false 

Chạy điều này không hiển thị bất kỳ truy vấn chèn nào.

dd(DB::getQueryLog()); 

Nhưng nếu tôi var_dump($user), tôi sẽ lấy đúng tất cả các trường được lưu chính xác trong đối tượng.

Cảm ơn!

+1

'tổ chức sự kiện :: nghe ('illuminate.query', function ($ query, $ bindings, $ time) { \t error_log ($ query); }); 'hãy thử điều này để kiểm tra truy vấn. – Dhiraj

+0

Bạn có muốn biết khi nào có lỗi cập nhật không? –

Trả lời

39

Để có được các truy vấn chèn khi $user->save(); lỗi, bạn có thể cố gắng nắm bắt những ngoại lệ như thế này:

try{ 
     $user = new User; 
     $user->fields = 'example'; 
     $user->save(); // returns false 
    } 
    catch(\Exception $e){ 
     // do task when error 
     echo $e->getMessage(); // insert query 
    } 

Hope this helps :)

+2

Nó thực sự phải là '(\ Exception $ e)' bởi vì nếu không nó sẽ nghĩ rằng bạn đang tìm kiếm lớp Exception trong không gian tên này. (Trừ khi bạn viết 'sử dụng Exeption') –

+0

cảm ơn nhắc nhở :) –

-2

Nếu bạn chỉ muốn thoát ra mà không biết những gì đang xảy ra bạn có thể thử này,

$user = new User; 
    $user->fields = 'example'; 
    if($user->save()){ 
     return true; 
    } 
    else{ 
     // returns false 
     //do something 
    } 
+1

Điều này không cho biết lỗi là gì, đó là những gì OP yêu cầu. –

+0

Câu trả lời không liên quan –

Các vấn đề liên quan