CI 묻고 답하기

제목 데이터를 view에 전달하는데 있어서 막혔습니다.
글쓴이 수야디벨 작성시각 2012/11/18 21:43:37
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14618   RSS

안녕하세요?

요새 날씨 많이 추워졌는데 다들 감기 조심하시구요~^^



공부를 하다가 막히는 부분인데,
이렇게 막힌 적이 한두번이 아닌데 , 이제서야 물어보네요 ㅠ

우선 코드를 먼저 풀어보자면요 (이해하기 쉬우시도록)

controller 에서 아래와 같이 모델을 호출합니다.(모델 이름은 'model' 사용하려는 함수는 getAll() )

$this->load->model('model');

$q['data'] = $this->model->getAll();

$this->load->view('test',$q);// -1



model에서는 특정 테이블의 값을 리턴합니다.

function getAll(){
   
   $this->db->select('key');
   $this->db->select('secret');
   
   $q = $this->db->get('tablekey');
   
   return $q->result();
   
 }

그러면 1번에서 처럼 $q값을 던지면 view에서는 아래와 같이 사용할 수 있지요.

<?
 foreach($data as $r) :
 echo $r->key."<br/>";
 echo $r->secret;
 endforeach;
?>



여기까직은 정말 참 ~ 알겠거든요!?

그런데 던지려는 데이터가 ,
모델에서 리턴 받은 값 + @ 가 있다면, 이를 어떻게 던져 줘야 할까요?


즉, 위에서는

$this->load->model('model');

$q['data'] = $this->model->getAll();

$this->load->view('test',$q);// -1

모델에서 던져 받은 변수 $q만 던져주지만


여기에서 $addata ='project'; 라는 값도 던져 주려면 어떻게 해야하나요?

$this->load->model('model');

$q['data'] = $this->model->getAll();
$addata['data2'] ='project';

$this->load->view('test',$q);// -1
$this->load->view('test',$adddata);// -2



이렇게 던져 주니까 view가 2번 불려지더라구요 ..

어떻게 방법이 없을까요?
 다음글 세션 질문입니다. (4)
 이전글 mpdf 출력시 한글이 깨짐 현상 (6)

댓글

유마 / 2012/11/19 09:04:49 / 추천 0
 $q를 데이터로 던지실 거니까요... $q 안에 넣으시면 됩니다.

예로 들면,
모델에서 리턴 받는 값이면 객체가 들어 있을 겁니다.

$q['data'].addata = 'project';
or $q['data']->addata = 'project';

요렇게는 안해봐서 될지 모르겠네요. 

이렇게 안되면.

$q['data']['addata'] = 'project'

뭐 이렇게 하시면 될 겁니다.

여튼 이런식으로 하시고 $q 값 던지시면 될 겁니다.

더 나은 방법은 밑에 분이 적어주실 겁니다. ㅎㅎ
한대승(불의회상) / 2012/11/19 12:40:00 / 추천 0
유마님 의견에 한표...

조금 더 세련(?)되 보이게 하려면...

$data = array($q, $adata);
$this->load->view("test", $data);

변종원(웅파) / 2012/11/19 14:02:03 / 추천 0
 $q['data'] 로 왜 힘들게 2차 배열을 만들어서 보낼까요? 그냥 $q로 보내도 될건데요. ^^

유마님, 불의회상님 말씀처럼 하나의 변수에 담아서 한번에 넘기기 위해서 그렇습니다.
매뉴얼에도 나올건데요. ^^