발생한 에러
Error #0 "Call to a member function get() on null" in layouts/el_basic2/layout.html on line 770
기존코드
{@ $args = new stdClass(); $args->order_type = "asc"; $args->list_count = 5; $args->member_srl = $logged_info->member_srl; $oDocumentModel = &getModel('document'); $output = $oDocumentModel->getDocumentList($args); } <ul cond="$output->data"> <li loop="$output->data=>$key,$val"> <a href="{getUrl('', 'mid', $val->get('module_srl'), 'document_srl', $val->get('document_srl'))}"> <span class="title">{$val->get('title')?$val->get('title'):$oDocument->get('title')}</span> <span class="date">{$val->get('regdate')?zDate($val->get('regdate'), "Y-m-d"):zDate($oDocument->get('regdate'), "Y-m-d")}</span> </a> </li> </ul>
변경된 코드
{@
$args = new stdClass();
$args->order_type = "asc";
$args->list_count = 5;
$args->member_srl = $logged_info->member_srl;
$oDocumentModel = &getModel('document');
$output = $oDocumentModel->getDocumentList($args);
}
<ul cond="$output && $output->data">
<li loop="$output->data=>$key,$val" cond="$val">
{@ $oDocument = $oDocumentModel->getDocument($val->get('document_srl')); }
<a href="{getUrl('', 'mid', $val->get('module_srl'), 'document_srl', $val->get('document_srl'))}">
<span class="title">{$val->get('title') ?: ($oDocument ? $oDocument->get('title') : '제목 없음')}</span>
<span class="date">{$val->get('regdate') ? zDate($val->get('regdate'), "Y-m-d") : ($oDocument ? zDate($oDocument->get('regdate'), "Y-m-d") : '')}</span>
</a>
</li>
</ul>
문제 원인
$oDocument 변수가 정의되지 않음
$oDocument->get('title')을 사용하려면 $oDocument 변수가 정의되어 있어야 함.
해결 방법
$oDocument 변수를 할당하는 코드가 없으므로 getDocument($val->get('document_srl'))로 가져와야 함.
$oDocument = $oDocumentModel->getDocument($val->get('document_srl'));
또는 oDocument 부분을 제거하고 $val->get('title')만 사용.
수정 사항 요약
- $output->data가 null인지 확인 (cond="$output && $output->data")
- loop 내부에서 $val이 null인지 확인 (cond="$val")
- $oDocument 변수를 getDocument()로 가져옴
- null 체크 후 기본값 설정 ('제목 없음' 추가)