라라벨 버전: 5.6
php 7.1 에서 7.4 로 업그레이드 하자 엑셀을 읽어오는 코드에서 아래와 같은 오류가 발생했다.
Trying to access array offset on value of type int
원인
엑셀의 value 의 type 값을 가져오는 부분에서 value 가 숫자인 경우 $pValue[0] === '=' 이런식의 비교는 오류를 발생시킨다.
수정
실제 vendor 내의 파일을 수정해서는 안되지만 (업데이트시 삭제되어 버림) 이미 지원이 끝났기때문에 직접 소스를 수정하는 방법을 택했다.
vendor/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php 82번째줄
} elseif ($ pValue [0] === '=' && strlen ($ pValue)> 1) {
이것을 아래와 같이 수정했다.
} elseif (!is_int($pValue) && !is_float($pValue) && $pValue{0} === '=' && strlen($pValue) > 1) {
'개발 > PHP 라라벨' 카테고리의 다른 글
DataTables 엑셀 다운받기에서 셀렉트 박스 (0) | 2021.06.29 |
---|---|
DataTables 상태값 유지 (데이터 소스를 서버 측 처리 ) (1) | 2021.03.15 |
PHP 7.1 > 7.4 로 업그레이드 (0) | 2021.03.10 |
라라벨 daily 로그 적용 (0) | 2021.01.29 |
라라벨 MSSQL DB 추가 연결 (0) | 2020.11.30 |