Use Case
쿠폰 타입이 정률제(fixedRate) 또는 정액제(flatSum)에 따라 받는 특정 파라메터가 입력되었는지 조건부 유효성 상태검사를 하려고한다.
Pseudo Code
if (couponType == 'flatSum') {
if (! request('flatSum')->isExists()) {
throw Exception
}
}
elseif (couponType == 'fixedRate') {
if (! request('fixedRate')->isExists()) {
throw Exception
}
}
라라벨 프레임워크에서는 FromRequest에서 다음과 같이 Validation을 수행할 수 있다.
<?php
class CreateCouponRequest extends FormRequest
{
public function rules(): array
{
return [
'title' => ['required'],
'code' => ['required'],
'state' => ['required', Rule::in(CouponStateEnum::in())],
'type' => ['required', Rule::in(CouponTypeEnum::in())],
'flatSum' => [
'required_if:type,' . CouponTypeEnum::FLAT_SUM->value,
'numeric',
],
'fixedRate' => [
'required_if:type,' . CouponTypeEnum::FIXED_RATE->value,
'numeric',
],
'expiredDays' => ['required', 'numeric'],
];
}
...
}
'Laravel' 카테고리의 다른 글
Laravel, DTO 작성하기 (0) | 2024.05.25 |
---|