2015-02-27 1 views
0

Вот мой код, в котором вы можете увидеть, что когда условие пусто для удаления командыпопытки поймать событие не показывает ошибку в строителе Laravel запросов

 try{ 
      DB::table('t_users')->where('id', '=', '')->delete(); 
     } catch (Exception $e){ 
      return Functions::createErrorResponse(400, 'E200', $e->getCode() . ' - ' . $e->getMessage()); 
     } 

, но он не показывает какое-либо ошибка здесь., если я некоторые неправильно имя таблицы, то он дает мне ошибку, как ..

{ 
    "error": { 
     "code": 400, 
     "type": "E200", 
     "message": "42S02 - SQLSTATE[42S02]: Base table or view not found: 1146 Table 'globalops.t_charts' doesn't exist (SQL: delete from `t_charts` where `id` =)" 
    } 
} 

который прекрасен,

Может кто-нибудь дать мне причину Wh y он не отображает никаких ошибок, даже если я сохраняю свой код в событии try-catch. Я должен сделать что-то еще ..?

+1

Я не думаю, что это ошибка в WHERE id = "" 'в SQL. ;) –

+0

Точно. Вы можете передать пустую строку. –

ответ

0

Оператор DELETE не выдает ошибки, даже если никакие строки не совпадают (удаляются). Однако delete() вернет количество затронутых строк. Я думаю, что вы хотите сделать что-то вроде этого:

$affected = DB::table('t_users')->where('id', '=', '')->delete(); 
if($affected == 0){ 
    return Functions::createErrorResponse(400, 'E200', 'User not found'); 
} 
Смежные вопросы