【发布时间】:2022-01-09 16:57:14
【问题描述】:
我正在使用 Laravel 8 和 unique 验证规则来确保记录保持唯一性,我现在正在尝试扩展它,以便它对每个用户也是唯一的,但是在扩展功能和使用规则时在数组形式中,它似乎没有验证用户 ID,而是给我一个完整性约束违规。
所以我有一个名为brands 的表,并且该表包含有问题的两列:brand 和user_id,我需要确保在存储记录时,品牌对于brand 列是唯一的并且登录用户的 ID 是发出请求的人,例如:
两个用户可以拥有同一个品牌,但一个用户不能拥有多个同一个品牌。
$validator = Validator::make($request->all(), [
'brand' => [
'required',
'string',
Rule::unique('brands')->where(function ($query) {
return $query->where('user_id', Auth::id());
})
],
'url' => 'required|string',
'telephone' => 'required|string|min:11|max:11'
]);
我也试过了:
'brand' => 'required|string|unique:brands,brand,user_id,' . Auth::id()
我错过了什么?
【问题讨论】:
-
如果我错了,请纠正我,但我认为应该是 Auth::user->id()。只是猜测。
标签: php laravel validation