Как проверить, чтобы поле должно быть и должно равняться null?
Если null - идем дальше, если нет - ошибка.
Как я понял, nullable не решает проблему.
class OrderDisheReverseRequest extends FormRequest
{
public function authorize()
{
return $this->order->canUpdate('reverse');
}
public function rules()
{
return [
# заказ не должен быть ранее возвращен (paid_back_at === null)
'b2p_id' => ['required', 'integer', 'min:1'],
'paid_at' => ['required', 'date', 'after:-3 day'],
'paid_back_at' => ['nullable'],
];
}
protected function prepareForValidation()
{
$this->merge([
'b2p_id' => $this->order->b2p_id,
'paid_at' => $this->order->paid_at,
'paid_back_at' => $this->order->paid_back_at,
]);
}
public function failedValidation(Validator $validator)
{
throw new HttpResponseException(response()->json([
'success' => false,
'errors' => $validator->errors(),
])->setStatusCode(400));
}
public function failedAuthorization() {
throw new HttpResponseException(response()->json([
'success' => false,
'message' => ResponseHelper::error(__('orders.messages.update.denied')),
])->setStatusCode(403));
}
}