제목 | view 이미지를 만들려고 하는 과정에 질문이 있습니다. | ||
---|---|---|---|
글쓴이 | 과학나라 | 작성시각 | 2013/09/16 13:01:02 |
|
|||
우선 이렇게 해보았는데요 소스입니다.<tr class="title" align="center"> <td height="30">번호</td> <td>제목</td> <?php foreach ($result as $row): ?> --생략-- <a href="/welcome/view"><?=$row->content?></a>list view에서 제목을 클릭하면 경로대로 "/welcome/view" 컨트롤러로 가집니다. 이렇게 보시다싶이 medel "simplebbsmodel"를 호출하고 view페이지인 view_message로 뿌려지게 됩니다.========================<controller>======================== medel 부분은 ============================<medel> =========================== //글읽기 function read() { $data['name'] = $row['name']; $data['content'] = $row['content']; $data['memo'] = $row['memo']; $this->load->view('view_message',$data); } 이렇게 하면 view 페이지는 가지는데 "Undefined variable" 찾을수 없다라고 나오네요.. 그럼 데이터를 잘못 가져오는건데 무슨 문제가 있는건지 말씀 부탁드립니다. |
|||
다음글 | 다중DB 대해서 질문 드려요 (2) | ||
이전글 | ci로 개인 cms 제작중입니다. (1) | ||
과학나라
/
2013/09/16 13:01:40 /
추천
0
|
한대승(불의회상)
/
2013/09/16 14:59:02 /
추천
0
모델에서 view를 로드 하고 싶다는건가요?
|
과학나라
/
2013/09/16 14:59:29 /
추천
0
네 그렇습니다
|
한대승(불의회상)
/
2013/09/16 15:03:33 /
추천
0
$data 값을 리턴 하신후 컨트롤러에서 view를 로드 하시는게 정석 입니다.
뷰의 출력 결과를 리턴 값으로 받고 싶다면 view load시 3번째 인자를 TRUE로 주시면 됩니다. 출력은 컨트롤러를 통해서 하세요. function read() { . . . . return $this->load->view('view_message', $data, TRUE); } |
변종원(웅파)
/
2013/09/16 15:15:21 /
추천
0
과학나라/ 불의회상님 말씀처럼 하시거나 라이브러리로 만들어서 처리하세요.
지금 하려고 하시는 것은 mvc패턴 사용에서 살짝 벗어나는 겁니다. |
과학나라
/
2013/09/16 15:20:53 /
추천
0
죄송하지만 말씀하신대로 해도 오류가 나오네요 ㅠ,ㅠ
controller function view() { $data['title']='글읽기'; $this->load->model('simplebbsmodel'); $this->load->view('view_message'); // 뷰 - 뷰 }medel function read() { $data['name'] = $row['name']; $data['content'] = $row['content']; $data['memo'] = $row['memo']; return $this->load->view('view_message', $data, TRUE); } view <tr> <td width="111" height="29" bgcolor="white"> <p align="center">제목</p> </td> <td width="627" height="29" bgcolor="white" colspan="3"> <p align="left"><?=$content?></p> </td> </tr> 오류가 A PHP Error was encounteredSeverity: Notice Message: Undefined variable: row Filename: models/simplebbsmodel.php Line Number: 54 |
한대승(불의회상)
/
2013/09/16 15:24:20 /
추천
0
네... 그렇군요.
그런데 model에 있는 $row는 어디에서 값을 가져오나요? 에러 메시지는 $row 변수가 NULL 이라고 하는데요. |
과학나라
/
2013/09/16 15:31:50 /
추천
0
list view에서 가져옵니다.
<tr class="title" align="center"> <td height="30">번호</td> <td>제목</td> <td>작성자</td> <td>작성일자</td> <td>조회수</td> </tr> <?php foreach ($result as $row): ?> <tr class="list_con"> <td align="center"><?=$row->no?></td> <td align="center"> <a href="/welcome/view"><?=$row->content?></a> </td> <td align="center"><?=$row->name?></td> <td align="center"><?=$row->date?></td> <td align="center"><?=$row->view?></td> </tr> <?php endforeach; ?> |
변종원(웅파)
/
2013/09/16 15:55:06 /
추천
0
프로그램은 바보(?)라서 개발자가 데이터를 넘겨주지 않으면 사용 못합니다.
리스트 뷰에 있는 데이터를 read()모델에 넘겨줘야 사용을 하죠. ^^ 잘 이해가 안되시면 종이에 관계를 그리시고 최종 모델에서 필요한 데이터가 어디 있는지 파악하고 그걸 단계를 따라 넘겨주거나 그 데이터를 구할 수 있는 번호를 넘겨서 db에서 원하는 데이터를 구하거나 해야 합니다. |
과학나라
/
2013/09/16 16:12:31 /
추천
0
죄송하지만 변수 row를 road로 보내면 되는데 예시로 한번 부탁드려도 될까요ㅠ.ㅠ
다른 소스 봐도 이런 흔적은 볼수가 없어서요 ㅠㅠ |
한대승(불의회상)
/
2013/09/16 16:54:16 /
추천
0
과학나라// 에러를 없애고 싶으시다면...아래 처럼 하시면 됩니다만.. 원하시는 결과는 받아 보실수 없을겁니다.
왜 그런지는 직접 찾아 보세요. function read($row = array()) { . . . . . } |
변종원(웅파)
/
2013/09/16 16:54:33 /
추천
0
모델 로딩할때 전역변수처럼 $row를 넘기고 싶다는 말씀인가요?
제가 알기론 로딩할때는 변수 못넘기고 모델내의 함수 호출할때 넘깁니다. $this ->load->model( 'simplebbsmodel' ); |
"
$this
->load->model(
'simplebbsmodel'
)" 대신에 "
$this->simplebbsmodel->read();" 넣어봐도 잘 안되네요. 이럴때 "Call to a member function read() "라는 오류 메세지가 뜹니다. 무슨말인지ㅠ