【问题标题】:Laravel - How to catch a database exception? Code 500Laravel - 如何捕获数据库异常?代码 500
【发布时间】: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());
    }   

有什么想法吗? 谢谢!

【问题讨论】:

标签: php exception-handling laravel


【解决方案1】:

你应该看看Ardent。然后,您可以定义一个规则以确保您的电子邮件在保存之前是唯一的:

public static $rules = array(
    'email' => array('required', 'unique', 'email')
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 2019-12-28
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多