我知道有很多关于这个问题的答案,但没有一个真正帮助过我。
// update name
Route::put('/profile/update', function(Request $request){
$name = $request->input('name');
try{
echo DB::table('users')->where('id',Auth::id())->update(['name' => $name]);
}
catch(\Exception $e){
// do task when error
echo $e->get_message();
}
});
我也尝试过删除方法,但这也行不通,请你弄清楚发生了什么。 感谢。
答案 0 :(得分:2)
Laravel主要使用camelCase进行命名,所以请使用:
catch(\Exception $e){
// do task when error
echo $e->getMessage();
}
如果没有,那么只需转储完整$e
即可查看:
catch(\Exception $e){
// do task when error
dd($e);
}
snake_case命名法仅用于Laravel中的表名。
答案 1 :(得分:2)
从您的代码中看起来似乎代码永远不会触及与laravel实际上无关的捕获。您的问题是 SQL 。
您正在尝试更新记录,并且在SQL中更新不存在的行永远不会失败。所以我建议通过检查结果值手动处理案例,并用替换尝试和捕获,否则
BTW @Learner 100%正确get_message()
它不在laravel中,因为我知道将来用getMessage()
取代它
答案 2 :(得分:0)
将echo $e->get_message();
更改为echo $e->getMessage();
,异常类不具备get_message()函数。
答案 3 :(得分:0)
就我而言,我必须使用var date = dataRow.Field<DateTime?>("TimeLineFrom").GetValueOrDefault();
// returns DateTime.Min for null
而不是\Throwable
\Exception