【发布时间】:2014-04-03 19:31:16
【问题描述】:
我用 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());
}
有什么想法吗? 谢谢!
【问题讨论】:
-
你搞砸了 Validator 类吗? laravel.com/docs/validation#rule-unique
-
是的,我想说你应该在插入之前检查电子邮件地址是否被占用。
标签: php exception-handling laravel