我的应用程序中具有以下表格,并且有一个电子邮件字段,数据从该字段进入数据库表中的电子邮件唯一列。 enter image description here
问题是,当我输入重复数据时,它将显示以下错误页面,而不是我想在电子邮件的表单字段中显示“重复输入”。
答案 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方法来避免发生错误