지극히 개인적으로 사용하는 방법인데요, 다른 분들에게 도움이 될 수 있을까하여 글을 남깁니다.
먼저 상황을 설명드리자면, 일반적인 리스트가 있고, 더보기 혹은 페이징을 눌렀을 때 pjax로 추가적인 부분만 불러와서 붙이는 구성을 많이 사용합니다. pjax가 결국 ajax호출이니까.. 처음에는 전체를 출력하고 그 이후에는 ajax로 리스트 중 추가부분만 불러오는 셈이지요. 또한 일부 썸네일을 modal을 통해서 수정을 하거나 신규생성의 경우에도 ajax로 해당 썸네일만을 불러와야하는 경우도 많이 있습니다.
이런 경우에 저는 아래와 같이 구성합니다.
- 페이지 전체를 관할하는 뷰(list_view.php)
- 썸네일의 뷰(thumb_view.php)
그리고 각각의 썸네일에서는 아래와 같이 호출합니다.
#list_view.php
<div id="list">
<?php $this->load->view('thumb_view', $rows); ?>
</div>
#thum_view.php
<?php foreach (get_defined_vars()['_ci_data']['_ci_vars'] as $key => $row): ?>
<div class="thumb">
<div class="subject">제목</div>
<div class="datetime">날짜</div>
</div>
<?php endforeach;?>
이렇게 구성을 하면 리스트에서 이용할 때에도 한 번만 불러오게되고, 수정이나 생성등에 대응하여 하나의 썸네일만 필요한 경우에도 요긴하게 사용할 수 있습니다.
추가적으로 ajax에 대응하여 일부 thumb들만 반환할 때에도 controller에서 손쉽게 분리가 가능합니다.
ex)
#controller
if($this->input->is_ajax_request())
$this->load->view('thumb_view', $results->rows);
else
$this->load->view('list_view', $result);
$this->load->view('thumb_view', [$row]);