Laravel-验证用户输入的唯一值

时间:2018-12-06 16:45:18

标签: mysql laravel validation

我有一个用于管理服务的表格,其中 service-url 是唯一的值。当我使用数据库中已经存在的service_url添加新服务时,它将返回SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

我想做的是修改我的代码,以返回具有服务网址的视图!。我该怎么办?

商店服务功能:

 public function store(Request $request)
{
    $request->validate([
        'service_url'=>'required',
        'client'=>'required',
        'service'=>'required',
        'domain_provider'=>'required',
        'domain_expiry'=>'required',
        'hosting_provider'=> 'required',
        'hosting_expiry' => 'required'
    ]);


    $share = new Service([
        'service_url' => $request->get('service_url'),
        'client' => $request->get('client'),
        'service' => $request->get('service'),
        'domain_provider' => $request->get('domain_provider'),
        'domain_expiry' => $request->get('domain_expiry'),
        'hosting_provider' => $request->get('hosting_provider'),
        'hosting_expiry' => $request->get('hosting_expiry')
    ]);
    $share->save();
    return redirect('/shares')->with('success', 'Service has been added');
}

我是Laravel的新手,我们将不胜感激:)

1 个答案:

答案 0 :(得分:0)

在验证中添加以下规则,它将检查services表中service_url列的唯一性。

'service_url'=>'required|unique:services',

希望您能理解

您可以看到laravel官方文档https://laravel.com/docs/5.7/validation#rule-unique