728x90
문제
$deliveryState 값이 0일 경우 찾아오지 못하는 문제 발생.
->when($deliveryState, function (Builder $builder) use ($deliveryState){
$builder->where('delivery_state', (int) $deliveryState);
})
when 은 값이 true 인지 false 인지에 따라 실행이 되므로 0은 false, 따라서 실행이 안된다.
해결 (추가 문제 발생)
->when($deliveryState !== '', function (Builder $builder) use ($deliveryState){
$builder->where('delivery_state', $deliveryState);
})
$deliveryState 의 값이 '' 이 아닌 경우를 타면 true 로 판정되어 실행된다.
추가문제 내용
처음에 페이지 접속시 null 이여서 !== 사용시 문제가 발생한다.
선배 피드백: strlen() 을 사용하면 값이 null 혹은 '' 일 경우 false 를 반환한다.
->when(strlen($deliveryState), function (Builder $builder) use ($deliveryState){
$builder->where('delivery_state', $deliveryState);
})