CI 묻고 답하기

제목 어제 이어서 질문 드립니다.
글쓴이 책상다리 작성시각 2014/01/09 17:09:15
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 13761   RSS
어제 제가 mvc를 구분하면서 소스를 간략하게 쓰는 방법을 질문했었는데요.
문제가 하나 되는게 뷰쪽에서 모델값을 쓰려면 $views->test 이런식으로 불러와서 쓰는데요.

이걸 간단하게 하려고 $test = $views->test 라고 뷰에서 선언하는데요.
이것도 한두개가 아니다보니까 지저분해서..컨트롤러 쪽에서 쓰려고 하는데요.

http://cikorea.net/qna/view/8816/page/9

이 글 참고해서 모델값을 컨트롤러에서 사용할수 있게 됐는데,
예를들면 컨틀롤러에서 $data['test']라고 정의된 값을 뷰쪽에서 $test 이런식으로 써주고 싶은데,
아니 꼭 $test 라고 쓰지 못하더라도, $test = $views->test 이 부분을 뷰쪽에는 안써주고 싶어서요...
mvc에 이상하게 집착하게 되네요..(__); 이럴때 숙련자 분들은 어떻게 하시나요...
 다음글 폼검증을 하지않고 set_select값을 고정할 수 있...
 이전글 안녕하세요.. 코드이그나이트 설치 방법 질문입니다. (2)

댓글

한대승(불의회상) / 2014/01/09 17:14:31 / 추천 0
뷰에서 모델의 값을 직접 부른다는 뜻인가요?

저는 뷰에서 모델을 직접 호출 하는걸 피하고 있습니다.

뷰에서 사용되는 모든값은 컨트롤러에서 넘겨준 값만 사용하도록 하구요.

 
책상다리 / 2014/01/09 17:25:21 / 추천 0
 음 설명이 좀 복잡하긴 하군요 ㅠㅠ

모델에서 값을 불러서 그걸 뷰에서 사용하려면 컨트롤러를 거쳐서
뷰에서 $views->test;(row로 넘길경우) 이런 식으로 써주는데요.
$views->test; 이걸 간략하게 하려고 $test = $views->test;
이렇게 정리를 해주는데, 이게 변수가 많아지면 이것도 좀 지저분하고 그래서, 컨트롤러 쪽에서 아예 정리된 $test 라는 변수를 뷰로 보내줄수 없을까 고민하게 됐습니다.
그래서 컨트롤러에서 모델의 값을 직접 불러서, 그 값을 뷰로 보내야 하나 생각해서 한게 위와 같은 형식이 되었습니다.
혹시 다른 방법이 있는지도 궁금하기도 하구요..ㅠㅠ
아직도 좀 햇갈리네요..제가 읽어봐도...;;;
변종원(웅파) / 2014/01/09 17:28:27 / 추천 0
$a->a, $a->b, $a->c 가 들어있다면

컨트롤러에서 for문 안에서 $data['a'] = $a->a; 식으로 할당해주면
원하는대로 사용할 수 있습니다.

해당 내용을 헬퍼로 하나 만들어서 사용하면 되겠죠.

책상다리 / 2014/01/09 17:59:51 / 추천 0
변종원님// 감사합니다. 역시 헬퍼의 도움없이는 힘들군요.
변종원(웅파) / 2014/01/09 18:25:28 / 추천 0
자주 쓰려면 헬퍼로 만들어서 사용하고 그렇지 않다면 그냥 for문 돌리면 됩니다.
책상다리 / 2014/01/09 18:37:41 / 추천 0
이렇게 해봤습니다.
모델에서
$row = $query->row_array();
$data['name'] = $row['name'];
.
.
.
return $data;
이렇게 주고 컨트롤러에서
$data = $this->board_m->get_view('TABLE', $this->uri->segment(3));
뷰에서
echo $name;

모델에 변수명이 덕지덕지 붙게 됐지만...일단 뷰는 깔끔해졌다는 나름의 성취감이..(__)
이제 헬퍼로 어떻게 할지 고민해봐야겠습니다.
아직 헬퍼나 라이브러리로는 뭘 작성해본적이 없어서...(__)그냥 함수만들듯이 하면 헬퍼는 되는거 같습니다만 힐끗보니..;;
한대승(불의회상) / 2014/01/09 18:40:20 / 추천 0
책상다리// 이것저것 시도해 보면서 성장 하는거죠 ^^