Extra Form
PHP PHP 7.2
CMS XpressEngine
{@
$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-->

이건 만료일자 차이값도 추가해줬습니다.

  • profile

    루프 돌리는 것보다는 해당 모듈에서 getRemainDateByMemberSrl 같은 함수나 쿼리xml을 제공하면 좋을 텐데요. 없으면 쿼리를 직접짜시는 게 좋을 것 같습니다.