Я пытаюсь проверить, являются ли столбцы (столбцы) уникальными, используя функциональность Rule::unique('table')->where(function($query) use($x) {...});
, но когда я передаю это в свой валидатор, я получаю странную ошибку. Я думаю, что происходит то, что он пытается проверить, равно ли значение в предложении where, которое я предоставил, но также и в столбце, который он ДУМАЕТ, является столбцом уникального идентификатора для таблицы, но это не так, он ломается.
protected function validator(array $data)
{
$uid = 660000000;
$rule = Rule::unique('member_record')->where(function ($query) use ($uid) {
return $query->where('uniqueID', $uid);
});
return Validator::make($data, [
'fullName' => ['required', 'string', 'min:2'],
'member_id' => [
'bail', 'required', 'Numeric', $rule,
'exists:new_benefits_member,member_id'
],
'email' => ['bail', 'required', 'email', 'confirmed', 'unique:user,email'],
'password' => [
'required', 'string', 'min:8', 'confirmed',
'regex:/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/'
],
'terms' => ['required']
]);
}
Однако затем я получаю сообщение об ошибке, похожее на следующее.
SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'member_id' в 'предложении where '(SQL: выберите количество (*) как совокупность из member_record
, где member_id
= 660000000 и (uniqueID
= 660000000))
Что я могу предположить только тогда, когда я передавая данные в Validator::make($data...
, он пытается сравнить правило $ с массивом $ data и портит его. Дайте мне знать, если у вас есть какие-либо исправления, которые я могу попробовать.