如何处理Laravel中的MySQL错误

时间:2019-02-18 06:50:27

标签: laravel

我的应用程序中具有以下表格,并且有一个电子邮件字段,数据从该字段进入数据库表中的电子邮件唯一列。 enter image description here

问题是,当我输入重复数据时,它将显示以下错误页面,而不是我想在电子邮件的表单字段中显示“重复输入”。

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用laravel的validations。发布表单时,在控制器中:

<?php 

public function store(Request $request)
{
    // Assuming that the table name is users and the column name of email field is email_address
    $request->validate([
        'email' => 'email|unique:users,email_address',
        'your_other_fields' => 'validationRules...'
    ]);

    // Your store logic here

}

然后以前端刀片形式,您需要添加一个块以显示该验证是否失败。

<div class="form-group">
    <label>Email *</label>
    <input class="form-control" placeholder="enter email" name="email">
    @if ($errors->has('email'))
        <span class="invalid-feedback" role="alert">
            <strong>{{ $errors->first('email') }}</strong>
        </span>
    @endif
</div>

现在,在前端,如果有人输入现有电子邮件,它将自动显示错误。请注意,错误的键是您在name=""表单中指定的内容,而不是表中的列名。

答案 1 :(得分:0)

在提交插入sql之前,可以使用select查询并计算是否返回任何值。如果返回值,则可以让系统显示错误,否则将数据插入数据库

或者您可以使用try catch方法来避免发生错误