{@ $oGradeupModel = getModel('gradeup'); $output = $oGradeupModel->getTermGroupLog($args)->data; }
gradeup 모듈에서 특정회원의 만료일값을 출력해주고 싶습니다.
{print_r($output)}
이렇게 해보니깐,
( [2] => stdClass Object ( [log_srl] => 2 [member_srl] => 97 [old_group_srl] => 2 [new_group_srl] => 1@3 [add_group_srl] => 3 [gradeup_add_type] => add [regdate] => 20181202144500 [remain_date] => 20191219144600 ) [1] => stdClass Object ( [log_srl] => 4 [member_srl] => 159 [old_group_srl] => 3 [new_group_srl] => [add_group_srl] => 3 [gradeup_add_type] => reset [regdate] => 20181202000000 [remain_date] => 20190202235959 ) ) 1/
그럼 여기서 현재 로그인한 회원의 remain_date를 출력해주고 싶은데요,
{$output[1]->remain_date}
이렇게 하면 첫번째 배열의 remain_date가 나온다는 건 알았습니다.
여기서 질문,
배열 안에서 member_srl==$logged_info->member_srl인 값의 remain_date가 나오게 하려면 어떻게 해야 하나요?
{@ $oGradeupModel = getModel('gradeup'); $output = $oGradeupModel->getTermGroupLog($args); } <!--@foreach($output->data as $key => $val)--> {$val->member_srl} <!--@end-->
이렇게 하면 배열안에 member_srl이 다 출력되버리공..
97 159 이렇게 ㅠ
{@ $oGradeupModel = getModel('gradeup'); $output = $oGradeupModel->getTermGroupLog($args); } <div style="letter-spacing:-1px;"> <!--@foreach($output->data as $key => $val)--> <!--@if($val->member_srl == $logged_info->member_srl)--> 만료일 : {date("Y.m.d H:i:s",strtotime($val->remain_date));} <br> <!--@end--> <!--@end--> </div>
이렇게 해줬습니다. ㅠㅠ 더 좋은 코드 있으면 알려주세요;
{@ $oGradeupModel = getModel('gradeup'); $output = $oGradeupModel->getTermGroupLog($args); } <div style="letter-spacing:-1px;"> <!--@foreach($output->data as $key => $val)--> <!--@if($val->member_srl == $logged_info->member_srl)--> 만료일 : {date("Y.m.d H:i:s",strtotime($val->remain_date));} <br> {@ $a = date('Y-m-d',strtotime($val->remain_date)); $b = date('Y-m-d'); $start = new DateTime($a); $end = new DateTime($b); $gap = date_diff($start, $end); //$gap->invert; } 만료 {$gap->days}일 전입니다. <!--@end--> <!--@end-->
이건 만료일자 차이값도 추가해줬습니다.
루프 돌리는 것보다는 해당 모듈에서 getRemainDateByMemberSrl 같은 함수나 쿼리xml을 제공하면 좋을 텐데요. 없으면 쿼리를 직접짜시는 게 좋을 것 같습니다.