laravel中独特的两列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel中独特的两列相关的知识,希望对你有一定的参考价值。
我正在使用laravel 5.6我有这张桌子
users_groups table
使用这些列user_id
引用users
自动增量id和group_id
引用groups
表中的组自动增量id
现在我试图验证数据的输入是两个列的唯一值,但它不能是表中的user_id
和group_id
相同。我找到了这段代码并试了一下:
$validatedData = $request->validate([
'user_id' => 'required|unique_with:users_groups,group_id',
'group_id' => 'required|unique_with:users_groups,user_id',
]);
它给了我这个错误:
方法Illuminate Validation Validator :: validateUniqueWith不存在。
有什么帮助吗?
答案
验证数据库中的表的正确方法是使用unique:table name,column
对于你的情况应该是
$validatedData = $request->validate([
'user_id' => 'required|unique:users_groups,group_id',
'group_id' => 'required|unique:users_groups,user_id',
]);
另一答案
我相信你要找的是这个:
// Haven't tried this code, but it should be pretty close to what you're looking for
use IlluminateValidationRule;
$validatedData = $request->validate([
'user_id' => [
'required',
Rule::unique('users_groups')->where(function ($query) {
return $query->where('group_id', $request->group_id);
})
],
'group_id' => [
'required',
Rule::unique('users_groups')->where(function ($query) {
return $query->where('user_id', $request->user_id);
})
]
]);
以上是关于laravel中独特的两列的主要内容,如果未能解决你的问题,请参考以下文章