У меня есть модель, которая содержит много внешних ключей. Один из этих внешних ключей должен иметь уникальное значение.
Мои правила проверки следующие:
$data['rules'] = [
'address' => 'required|string',
'buyer_id' => 'required|exists:buyers,id',
'buyer_name' => 'required|string',
'date' => 'required|date',
'email' => 'required|email',
'identification_photo' => 'required|string',
'invoice' => 'string|required',
'middleman_id' => 'nullable|exists:middlemen,id',
'price' => 'required|numeric|between:1,99999999999999999999999999.9999',
'property_id' => 'required|exists:properties,id|unique:reservations,property_id',
'purchase_receipt' => 'required|string',
'rfc' => array(
'required',
'regex:/^([A-Z,Ñ,&]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[A-Z|\d]{3})$/'
),
'tier_id' => 'nullable|exists:tiers,id',
'user_id' => 'required|exists:users,id',
];
У меня проблема с property_id . Это должно быть уникальным в текущей таблице, которая является резервированием.
Чтобы игнорировать эту проверку при обновлении, я добавляю эту строку кода перед вызовом Validator:
$book['rules']['property_id'] .= ",{$item->property_id}";
И когда я выполняю Log::info
всех своих правил, я получаю следующую строку: 'property_id' => 'required|exists:properties,id|unique:reservations,property_id,4',
Но я продолжаю получать сообщение об ошибке. Я что-то не так делаю?