php - laravel 中的唯一字段验证问题
问题描述
我正在尝试验证我的 laravel 应用程序中的唯一条目
以下是我的验证数组,
$website = $websiteModel->find($id);
$this->validate($request, [
'subDomainName' => ['required','regex:/^[A-Za-z0-9 ]+$/'],
'subDomainSuffix' => ['required'],
'packageType' => ['required'],
'themeid' => ['required'],
'lang' => ['required'],
'user' => ['required'],
'domain' => [
'required',
'string',
'min:2',
'max:255',
Rule::unique('apps')->ignore($website)
],
], $request->all());
我的验证工作正常但是,
当我尝试为我的域字段输入重复值时,它得到正确验证但没有显示错误消息,说对不起名称已经存在......
<input type="text" id="domain" class="form-control" name="domain" >
{!! $errors->first('domain', '<span class="help-block" role="alert">:message</span>') !!}
在此范围内,它什么都不显示,但在常见错误消息区域中显示对不起表单无法更新...那么我如何正确验证该字段并显示相关错误消息
解决方案
Do something like this:
On insert request use
'domain' => [
...
'unique:websites,domain'
]
On update request use
'domain' => [
...
"unique:websites,domain,{$this->website->id}"
]
Or
'domain' => [
...
Rule::unique('websites', 'domain')->ignore($this->website)
]
推荐阅读
- c# - xamarin 绑定类属性
- pandas - 如何使用 boto3 从 S3bucket 子文件夹中获取文件内容?
- mysql - MySQL不断重新启动并且无法连接到它
- html - 我可以在 Open Graph 中使用相对路径吗?
- android - 有什么方法可以使用 Flutter 从我的设备上卸载应用程序?
- kotlin - 为什么 String.toDouble() 会增加小数位?
- php - .htacess 将分页添加到文件 S_NSW.php
- asp.net-core - 从 .NET Core 将视频流式传输到 Safari
- java - 是否可以在输出上方使用扫描仪显示输出?
- mysql - Sequelize with koa2 不能限制记录。我能怎么做?