증상 요약
DataGrid의 cellChildren에서 Span.text에 단일 moustache binding과 pipe를 함께 사용한 경우 값이 출력되지 않습니다.
동일한 JSON과 동일한 pipe 표현식은 일반 DynamicRenderer에서는 정상적으로 동작하지만, DataGrid의 cellChildren에서만 재현됩니다.
재현 절차
- 다음과 같이 DataGrid column을 정의합니다.
{
"field": "created_at",
"cellChildren": [
{
"type": "basic",
"name": "Span",
"text": "{{row.created_at | datetime('YYYY-MM-DD HH:mm')}}"
}
]
}
- 다음 데이터를 제공합니다.
{
"created_at": "2026-07-26T05:42:00.000000Z"
}
- DataGrid 화면을 확인합니다.
기대한 동작
datetime pipe가 적용되어 브라우저 시간대 기준의 날짜가 출력되어야 합니다.
예)
실제 동작
Span 컴포넌트는 정상적으로 렌더링되지만 text 값이 출력되지 않아 셀이 빈 상태로 표시됩니다.
브라우저 콘솔 및 Laravel 로그에는 관련 오류가 발생하지 않았습니다.
환경 정보 (필수)
- 코어 버전: 7.0.5
- 업그레이드 이슈인 경우 — 업그레이드 전 버전 → 후 버전: 해당 없음
- PHP 버전: 8.3.x
- 웹서버·실행 방식: Nginx + PHP-FPM
- DB: MariaDB 10.11.x
- OS: Linux
활성 확장 목록 (해당 시)
재현은 CRM 개발 중 확인했지만, 현상은 특정 모듈의 비즈니스 로직과 무관하게 DataGrid 공통 렌더링에서 발생하는 것으로 보입니다.
커스텀 자산 여부 (해당 시)
본 현상은 CRM 개발 과정에서 발견되었지만, 특정 모듈의 구현과는 무관하게 DataGrid 공통 렌더링에서 재현되었습니다.
스크린샷·로그
별도의 PHP 오류나 Laravel 로그는 발생하지 않았습니다.
브라우저에서는 해당 셀이 빈 값으로 표시됩니다.
추가 정보
확인 결과 cellChildren에는 다음 컨텍스트가 정상적으로 전달됩니다.
또한 일반 JavaScript 표현식은 정상적으로 평가됩니다.
예를 들어 다음 표현식은 정상적으로 출력됩니다.
반면 pipe를 포함한 단일 moustache binding은 출력되지 않습니다.
{{row.created_at | datetime('YYYY-MM-DD HH:mm')}}
동일한 JSON과 동일한 표현식을 일반 DynamicRenderer에서 렌더링하면 datetime pipe가 정상적으로 적용됩니다.
또한 desktop table과 responsive/card 양쪽에서 동일하게 재현되었습니다.
최소 재현 예제
DataGrid
{
"field": "created_at",
"cellChildren": [
{
"type": "basic",
"name": "Span",
"text": "{{row.created_at | datetime('YYYY-MM-DD HH:mm')}}"
}
]
}
데이터
{
"created_at": "2026-07-26T05:42:00.000000Z"
}
결과
- 일반
DynamicRenderer: 정상 출력
- DataGrid
cellChildren: 빈 값 출력
참고
현재 확인한 범위에서는 다음과 같은 특징을 확인했습니다.
cellChildren의 컨텍스트(row, value, $value)는 정상적으로 전달됩니다.
- 일반 JavaScript 표현식은 정상적으로 평가됩니다.
- pipe를 포함한 단일 moustache binding에서만 출력되지 않습니다.
- 동일한 표현식은 일반
DynamicRenderer에서는 정상적으로 동작합니다.
- desktop table과 responsive/card 모두 동일하게 재현됩니다.
따라서 현재로서는 DataGrid의 cellChildren 렌더링 경로에서 pipe를 포함한 단일 moustache binding을 처리하는 과정에 문제가 있는 것으로 보입니다.
증상 요약
DataGrid의
cellChildren에서Span.text에 단일 moustache binding과 pipe를 함께 사용한 경우 값이 출력되지 않습니다.동일한 JSON과 동일한 pipe 표현식은 일반
DynamicRenderer에서는 정상적으로 동작하지만, DataGrid의cellChildren에서만 재현됩니다.재현 절차
{ "field": "created_at", "cellChildren": [ { "type": "basic", "name": "Span", "text": "{{row.created_at | datetime('YYYY-MM-DD HH:mm')}}" } ] }{ "created_at": "2026-07-26T05:42:00.000000Z" }기대한 동작
datetimepipe가 적용되어 브라우저 시간대 기준의 날짜가 출력되어야 합니다.예)
실제 동작
Span컴포넌트는 정상적으로 렌더링되지만text값이 출력되지 않아 셀이 빈 상태로 표시됩니다.브라우저 콘솔 및 Laravel 로그에는 관련 오류가 발생하지 않았습니다.
환경 정보 (필수)
활성 확장 목록 (해당 시)
재현은 CRM 개발 중 확인했지만, 현상은 특정 모듈의 비즈니스 로직과 무관하게 DataGrid 공통 렌더링에서 발생하는 것으로 보입니다.
커스텀 자산 여부 (해당 시)
modules/_bundled/아래에 개발 중인 커스텀 모듈이 있습니다.public/.htaccess를 직접 수정했습니다.본 현상은 CRM 개발 과정에서 발견되었지만, 특정 모듈의 구현과는 무관하게 DataGrid 공통 렌더링에서 재현되었습니다.
스크린샷·로그
별도의 PHP 오류나 Laravel 로그는 발생하지 않았습니다.
브라우저에서는 해당 셀이 빈 값으로 표시됩니다.
추가 정보
확인 결과
cellChildren에는 다음 컨텍스트가 정상적으로 전달됩니다.또한 일반 JavaScript 표현식은 정상적으로 평가됩니다.
예를 들어 다음 표현식은 정상적으로 출력됩니다.
반면 pipe를 포함한 단일 moustache binding은 출력되지 않습니다.
동일한 JSON과 동일한 표현식을 일반
DynamicRenderer에서 렌더링하면datetimepipe가 정상적으로 적용됩니다.또한 desktop table과 responsive/card 양쪽에서 동일하게 재현되었습니다.
최소 재현 예제
DataGrid
{ "field": "created_at", "cellChildren": [ { "type": "basic", "name": "Span", "text": "{{row.created_at | datetime('YYYY-MM-DD HH:mm')}}" } ] }데이터
{ "created_at": "2026-07-26T05:42:00.000000Z" }결과
DynamicRenderer: 정상 출력cellChildren: 빈 값 출력참고
현재 확인한 범위에서는 다음과 같은 특징을 확인했습니다.
cellChildren의 컨텍스트(row,value,$value)는 정상적으로 전달됩니다.DynamicRenderer에서는 정상적으로 동작합니다.따라서 현재로서는 DataGrid의
cellChildren렌더링 경로에서 pipe를 포함한 단일 moustache binding을 처리하는 과정에 문제가 있는 것으로 보입니다.