laravel - Laravel 唯一验证,仅当值不同且没有 id 时
问题描述
我正在尝试更新数据,为此我在表单上使用了方法补丁。
更新验证请求
use Illuminate\Validation\Rule;
'question' => [
'required',
'string',
Rule::unique('faqs_questions','question'),
'max:30',
],
如果我的问题没有变化,它会给我一个错误:
问题已经提出。
dd($this->toArray())
验证请求让我低于输出:
array:9 [▼
"_method" => "PATCH"
"_token" => "LLqlQfMpzSdyAInVOaqs5lqBMbEvNT9eMDU9ZZxJ"
"my_name_TOApMPqqwwBasdts9bLa" => null
"valid_from" => "eyJpdiI6IkJ2TUpZV29ZV0Qzasdasdaasgst5345wtgrtyegq4yhq4qhgqgMDU1"
"question" => "Question B"
"answer" => "Answer B"
]
我尝试Rule::unique('faqs_questions','question')->ignore($this->question),
在我的请求文件上使用,但我认为它需要我们在任何输入中都没有的 id。有什么办法可以解决吗?
解决方案
您可以执行以下操作,其中使用where
子句表示我们要检查question
表中是否已存在。
$validator = Validator::make(['question' => $request->question], [
'question' => [
'required',
'string',
Rule::unique('faq_questions')->where('question', '!=', $request->question),
'max:30'
]
]);
您可以将它检查的字段更改为您想要的任何内容,希望以上内容可以为您提供总体思路。
然后你可以检查验证是成功还是失败:
if ($validator->fails()) {
// error
}
推荐阅读
- ios - Obj C - NSMutableArray containsObject 返回真
- powershell - 用于通讯组的 PowerShell Get-ADGroupMember
- c - 如何将结构成员作为参数传递给函数?- C
- c# - 如何从 Sharepoint 下载文件?
- c# - 如何在 C# 中将动态或对象转换为强类型对象
- javascript - JS 从数组中检索对象并将其转换为字符串
- tensorflow - 添加自定义指标 Keras 子类化 API
- java - 使用子字符串和 if else 语句的日期格式更改器
- java - Save-Bundle with Fragments Not Saving State on Android
- java - Apache james 3.4 消息已假脱机但未传递