Php 如何捕捉数据库异常?代码500
我和laravel创建了一个登记表。数据库中的电子邮件列被分类为唯一。如果我用电子邮件地址注册了一个用户,并希望再次发送表单,我希望捕获此异常并向该用户显示错误消息 但目前我能识别的唯一一件事是,代码500返回给我,我没有机会捕捉到该异常以显示更用户友好的消息 我的代码如下,我的问题是如何检测到Php 如何捕捉数据库异常?代码500,php,exception-handling,laravel,Php,Exception Handling,Laravel,我和laravel创建了一个登记表。数据库中的电子邮件列被分类为唯一。如果我用电子邮件地址注册了一个用户,并希望再次发送表单,我希望捕获此异常并向该用户显示错误消息 但目前我能识别的唯一一件事是,代码500返回给我,我没有机会捕捉到该异常以显示更用户友好的消息 我的代码如下,我的问题是如何检测到$user->save没有发生,并且应用程序不应该回发代码500 //Storing the data to the database try { $user = new Us
$user->save
没有发生,并且应用程序不应该回发代码500
//Storing the data to the database
try {
$user = new User;
$user->name = Input::get('name');
$user->surname = Input::get('sname');
$user->email = Input::get('email');
$user->activatehash = str_random(25);
$user->ip = Request::getClientIp();
$status = $user->save();
} catch(\Exception $e) {
//Do something when query fails.
return View::make("register", array('error' => 'true'))->withInput(Input::all());
}
有什么想法吗?
谢谢 你应该看看。然后,您可以定义一个规则,以确保您的电子邮件在保存之前是唯一的:
public static $rules = array(
'email' => array('required', 'unique', 'email')
);
你搞乱了验证器类吗?是的,我想你应该在插入之前检查一下电子邮件地址是否被占用了。