제목 | 컨트롤러에서 view로 값 던지기 질문드립니다. | ||
---|---|---|---|
글쓴이 | 다다닷 | 작성시각 | 2014/08/24 12:08:40 |
|
|||
안녕하세요. 오랜만에 글을 올리네요.. 개인 게시판을 만들고있는데 현재 컨트롤러에서 뷰로 값을 던지는 과정에서 몇시간째헤메고있네요.. 현재 사용하는 방법은 아래와 같습니다. 컨트롤러 class Ctrl_menu_board_write_insert extends CI_Controller{ public function __construct() { parent::__construct(); } public function getMenuboardwrite($no){ $this->model_menu_board->board_get_contents(&$obj,$no); $cont['getcont']=$obj; $this->load->view('view_menu_board_write',$cont); } } ?> 뷰에서는 위에서 던지는 print_r($getcont); exit; 로 받아서 값을 찍고 있는데.. 계속 undefine $getcont라는 오류구문을띄우네요.. 자료실에 올라온 내용도 보고 그대로 했지만..왜 이런 오류가 뜨는지 모르겠습니다.. A PHP Error was encountered Severity: Notice Message: Undefined variable: getcont Filename: views/view_menu_board_write.php Line Number: 24 |
|||
다음글 | CI URL 변경 하는 방법 질 문드립니다. (4) | ||
이전글 | redirect 문제 (3) | ||
kaido
/
2014/08/24 14:04:04 /
추천
0
|
다다닷
/
2014/08/24 17:25:30 /
추천
0
@kaido 저렇게 안해도.. 되어야 정상인데.. 저렇게 해도 안되네요..
|
수야디벨
/
2014/08/25 09:24:28 /
추천
0
안될리가 없을텐데.. 일단 카이도님이 수정하신거처럼 변수를 받아서 할당해 주셔야 합니다.
그럼 $obj 에 값이아무것도 안담기나보네요. print_r($obj)해서 값이 정상적으로 출력되는지 확인해 보세요~ |
변종원(웅파)
/
2014/08/25 10:06:35 /
추천
0
단계별로 출력을 해보세요.
$obj 변수는 어디서 선언한건가요? |
letsgolee
/
2014/08/25 11:32:47 /
추천
0
$obj는 함수의 리턴 값을 값을 갖도록 해야지 reference방식으로 하면 안됩니다. php버젼이 높아지면서 그 방식은 deprecated 되었어요.
|
CI_ORL
/
2014/08/25 12:03:16 /
추천
0
view_menu_board_write('$data'){
$data = $getcont; } 선언을 하지 않으신건 아닐까요?? |
다다닷
/
2014/08/25 17:48:52 /
추천
0
@수야디벨
저도..안될리가 없는데.. 안되더라구요. print_r($obj); 하면 값 정상적으로 db에서 가지고오고 있습니다. @변종원(웅파) 나름 단계별로 한다고했는데.. 실제로 컨트롤러에서는 모델에서 던져주는 &$obj 값을 잘 받고 있습니다. $obj는 모델에서 &$obj로 값을 공유 하고 있습니다. @letsgolee 아.. 그런가요.. ? php 버전 높아지면서 이방식이.. . 제가 알기로는 현재 5.2버전을 쓰고있는데.. 같은 프로젝트에서 다른 파일에서는 잘되어서.. 쓰다가 이런 문제가 생겨서 글을 올리게 되었습니다. @ CI_ORL 무슨 말씀이신지 잘 이해가안가네요.어디서 선언을 하지 않았다는건가요.?? |
한대승(불의회상)
/
2014/08/25 18:05:11 /
추천
0
코드가 아무래도 이상하네요.
모델 코드를 올려주세요. |
다다닷
/
2014/08/26 09:49:43 /
추천
0
@한대승(불의회상) |
변종원(웅파)
/
2014/08/26 10:02:48 /
추천
0
매뉴얼대로 정상적으로 결과 리턴해서 뷰에 넘겨보세요.
안되면 ci 자체 문제이고 되면 하신 방식이 ci와 맞지 않는 것이니까요. (또는 php버전) |
한대승(불의회상)
/
2014/08/26 10:31:30 /
추천
0
PHP,CI울고싶다 // 그렇군요...
$this->model_menu_board->board_get_contents(&$obj,$no);호출 할 때 이렇게 하는거 이상 합니다. 에러 나지 않던가요? 아래 처럼 해보시고 결과 알려주세요. $this->model_menu_board->board_get_contents($obj,$no); |
letsgolee
/
2014/08/26 11:44:11 /
추천
0
굳이 reference로 넘기는 이유가 뭔가요?
모델에서 return $query->result_array(); 한 후 ontroller에서 $obj = $this->model_menu_board->board_get_contents($no); 이것이 더 가독성 및 소스유지에도 좋을 텐데요. |
다다닷
/
2014/08/31 12:03:55 /
추천
0
안녕하세요. 모든 분들에게 감사드립니다.
아무래도 확인해보니 $no = $_GET['no']; $fnc = new Ctrl_menu_board_write_insert(); $fnc -> getMenuboardwrite($no); 뷰에서 컨트롤러로 값을 이렇게 던지는 부분이 있는데 이부분을 모델에서 $this->input->get('$no') 로 받게 처리 하니 잘 되네요.. 아무래도 제가 짠 로직이 꼬인거 같았습니다. 그리고 @한대승(불의회상) 말씀하신대로 작성해도 오류는 안나더라구요.. 두가지 방법 다사용해봤습니다.. 저렇게 사용해도 오류는 없는거 같아요.. 말씀하신대로 &$obj가 정상적인 방법은아닌거같아요.. $obj로 넘기고 모델단에서 &$obj로 넘기는게 맞구요..ㅎㅎ @letsgolee 맞습니다.. 저도 컨트롤러단에서 저렇게 받아서 사용하는게 가독성 면에서 좋다고 생각합니다.^^ 고맙습니다 |
한대승(불의회상)
/
2014/09/01 09:08:16 /
추천
0
PHP,CI울고싶다// 문제가 잘 해결되었다니 다행입니다. ^^
오류가 나지 않는다면 PHP버전이 달라서인것 같군요. http://php.net/manual/kr/language.references.pass.php 모델에서 입력값을 직접 받아 오는것보다 컨트롤러에서 받아온후 검증하여 모델에 넘겨주는게 좋습니다. 그렇게 하면 모델의 재사용성도 늘고 부작용(side effect)도 줄어들게 됩니다. 오늘도 즐거운 코딩 되시길.. |