CI 묻고 답하기

제목 코드이그나이터 controller부분 문의드립니다.
글쓴이 씨아이세상 작성시각 2011/11/05 17:36:20
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 19841   RSS

  코드이그나이터+template_ 어즈정도 게시판을 완성햇는데요..
  controller에서 template_로 파서할대 배열부분에서 의문이 있어서요
$this->template->assign('row',$real_data); row 정의하고
view에서 {= row.paging },{= row.pageNum } 하면 잘나오는데요
이렇게 하면 않나오구
<!--{@ row }--> 
~~~
{= row.no },{= row.name }
 <!--{/ }-->
$data = $real_data['result']; //resul배열을 data담아서 정의해서보내면
$this->template->assign('row1',$data);
<!--{@ row1 }--> 
~~~
{= row1.no },{= row1.name }
 <!--{/ }-->
잘나오내요..
<!--{@ row }--> 
~~~
{= row.no },{= row.name }
 <!--{/ }-->

 이런식으로 보내서 뿌려줄순없는건가요?
 구지 $real_data['result'] 이런식말고 다른 좋은 방법이 있을가요?


     $total_list=$this->model->total_list();// 게시물총수
 
   $config['base_url'] = '/board_con/list/';
   $real_data['perPage']=$config['per_page'] = 3; // 페이지 출력수
   $config['total_rows']=$total_list;
    $real_data['getTotalData']=$total_list;
   $real_data['pageNum']=$offset =$this->uri->segment(3, 1);
   $real_data['result']=$this->model->get_data($real_data['perPage'], $offset);
   $this->pagination->initialize($config);
   $real_data['paging'] = $this->pagination->create_links();

   /**/
   $data = $real_data['result']; 
   /**/

  print_R($real_data);
  /*  $real_data 배열값*/
  Array ( [perPage] => 3 [getTotalData] => 9 [pageNum] => 1 [result] => Array ( [0] => Array ( [no] => 33 [name] => ㅁㄴㅇㄹ [rank] => 0 ) [1] => Array ( [no] => 28 [name] => 11 [rank] => 1 ) [2] => Array ( [no] => 37 [name] => 메뉴` [rank] => 1 ) ) [paging] =>  1 2 3 >  [s_word] => )
  /* $real_data 배열값*/

  print_R($data);

  /*$data 배열값*/
  Array ( [0] => Array ( [no] => 33 [name] => ㅁㄴㅇㄹ [rank] => 0 ) [1] => Array ( [no] => 28 [name] => 11 [rank] => 1 ) [2] => Array ( [no] => 37 [name] => 메뉴` [rank] => 1 ) )
    print_R($data);
  /*$data 배열값*/

   $this->template->define('bbslist', 'bbs_list.tpl');
   $this->template->assign('row',$real_data);
   $this->template->assign('row1',$data);
   $this->template->print_('bbslist');


/* bbslist */
    <!--{@ row1 }-->
    <tr>
        <td  height="36" bgcolor="white" >
            <p align="center">{= row1.name}</p>
        </td>
        <td  height="36" bgcolor="white" >
            <p align="center">{= row1.rank}</p>
        </td>
        <td  height="36" bgcolor="white" >
            <p align="center">
     <a href="/project/board_modify/{= row1.no}">[수정]</a>
      <a href="[removed]();" onClick="articleDel( '{= row1.no}')">[삭제]</a></p>
        </td>
    </tr>
   <!--{/ }-->

   {= row.paging },{= row.pageNum }
/* bbslist */
 

 다음글 세션이 끊어지는 현상_아이프레임 (3)
 이전글 폼과 관련된 경로 문제 (2)

댓글

한대승(불의회상) / 2011/11/06 14:23:20 / 추천 0
Template_를 써보지 않아 잘 모르겠지만...
아래 부분을 
<!--{@ row }-->  
~~~
{= row.no },{= row.name }
 <!--{/ }-->
요렇게 바꿔쓰면 어떻게 될지....
<!--{@ row.result }-->  
~~~
{= row.result.no },{= row.result.name }
 <!--{/ }-->
ㅎㅎㅎ 그런데 이렇게 되면 


DJ구스 / 2011/11/06 16:52:56 / 추천 0
님은 우선 xtac.net 에 가셔서 메뉴얼을 다시 한번 보세요..
{@arrValue} 형태는 for문을 대신할 때 씁니다.

즉 $real_data의 값은 1차원 배열인데. 굳이 @ 루프를 돌릴 이유가 없지요,,
즉 @=array 가 아니라 for 입니다.
그래서 그냥 {row.paging }로 하시면 됩니다. 
{= row.paging }. 잘못된 방식입니다. = 는 함수 호출에만 씁니다. {= number_format} 이런식..

$data는 다차원 배열이니깐 루프를 통해서 key.value에 접근하는것입니다. 


   print_R($real_data);

  /*  $real_data 배열값*/
  Array ( [perPage] => 3 [getTotalData] => 9 [pageNum] => 1 [result] => Array ( [0] => Array ( [no] => 33 [name] => ㅁㄴㅇㄹ [rank] => 0 ) [1] => Array ( [no] => 28 [name] => 11 [rank] => 1 ) [2] => Array ( [no] => 37 [name] => 메뉴` [rank] => 1 ) ) [paging] =>  1 2 3 >  [s_word] => ) 
  /* $real_data 배열값*/

  print_R($data);

  /*$data 배열값*/
  Array ( [0] => Array ( [no] => 33 [name] => ㅁㄴㅇㄹ [rank] => 0 ) [1] => Array ( [no] => 28 [name] => 11 [rank] => 1 ) [2] => Array ( [no] => 37 [name] => 메뉴` [rank] => 1 ) ) 
    print_R($data);
  /*$data 배열값*/

DJ구스 / 2011/11/06 16:54:41 / 추천 0
 
<!--{@ row.result }-->  
~~~
{= row.result.no },{= row.result.name }
 <!--{/ }-->

이것을 이렇게도 표현 가능합니다.

<!--{@ row.result }-->  
~~~
{.result.no },{.result.name }
 <!--{/ }-->

참고로 전 <!----> 보단 그냥 {@ row.result} 형태로 사용합니다.
주석과 헤깔리고 제어문의 경우 ?@:/ 형태로 붙여 주니 번수와 헤깔리지도 않지요