CI 묻고 답하기

제목 컨트롤에서 모델에서 가져온 데이터 바꾸는 법은?
글쓴이 cleansugar 작성시각 2009/07/24 22:03:17
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 24597   RSS
function detail($name)
    {
    	$data['result'] = $this->hello_model->getDetail($name);
    	foreach ($data['result'] as $row)
   		{
   			if ($row->sex == 0){
      			$row->sex = '여자';
      		}else{
      			$row->sex = '남자';
      		};
}
	foreach ($data['result'] as $row)
		{
      		if ($row->bigo != null){
      			$this->load->view('bigodetail_view',$data);
      		}else{
      			$this->load->view('detail_view',$data);
      		};
   		}
	function getDetail($name)
	{
		$this->db->where('name', $name);
		$query = $this->db->get('table1');
		
		if ($query->num_rows() == 0)
		{
			//show_error('Database is empty!');
		}else{
			return $query->result();
		}
	}
$row->sex가 0이면 여자고 1이면 남자인데요. 이걸 뷰에서 여자 남자로 표시해주기위해서 컨트롤러에서 위와같이 했습니다.
이렇게 하는 방법이 제일 맞는 방법인가요?
그리고 $data['result'] 데이터를 그대로 쓰면 문제가 아닌데 여기에 새로운 프로퍼티를 추가하려면 어떻게 해야 하나요?
예를 들어 sex는 그냥 두고 sex1이란 걸 만들어서 남자 여자를 넣으려면 컨트롤러에서 하는 것이 맞나요?문제는 데이터가 한명이 아니라 여러명이라서 sex1도 배열이나 객체로 해야한다는 것입니다.  어떻게 해야하죠?

그리고 컨트롤러에서 $data['result'] 를 읽을 때 꼭 foreach를 써야 되나요? n번째 항목에 직접 접근하는 방법은 없을까요?
예를 들면 $data['result']['sex'][n]같은 방법으로 말입니다.

고수님들의 도움 기다리겠습니다.

무더위에 몸조심하시구요. 감사합니다.
 다음글 [개선요청]한글 매뉴얼 검색 (3)
 이전글 [버그신고]자동로그인했는데 글쓰기 안됨 (1)

댓글

kirrie / 2009/07/24 22:52:14 / 추천 0
의도하신대로 하기 위해서는 결과값을 다른 새로운 배열로 옮기면서 추가하셔야 할 것 같습니다.
그런데 생각해보면 단순히 sex값을 가져와서 '다른 표현 방식으로 보여'주기 위함임으로 이 부분은 viwe에서
처리하시는게 어떨까요?
kirrie / 2009/07/24 22:53:05 / 추천 0
그리고 말씀하신대로 $data['result']는 배열이므로 그렇게 접근하시면 됩니다.
대신에 $data['result'][n]['sex']가 맞겠지요.
cleansugar / 2009/07/25 01:00:51 / 추천 0
고맙습니다. 도움이 많이 되었습니다.
cleansugar / 2009/07/25 13:23:46 / 추천 0

새로운 배열로 옮기면서 추가하는 방법좀 가르쳐주실 수 없을까요? 그리고 새로 만들지 않고 원래것을 고치는 법은 없을까요?