我用laravel创建了一个注册表单。数据库中的电子邮件列被归类为UNIQUE。如果我使用电子邮件地址注册了一个用户,并且想要第二次发送表单,我想捕获此异常并向用户显示错误消息。
但是目前唯一可以识别的是代码500回复给我,我没有机会捕获该异常以显示更加用户友好的消息。
我的代码如下,我的问题是如何检测到$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());
}
有什么想法吗? 谢谢!
答案 0 :(得分:0)
你应该看看Ardent。然后,您可以定义规则以确保在保存之前您的电子邮件是唯一的:
public static $rules = array(
'email' => array('required', 'unique', 'email')
);