| 제목 | 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() "라는 오류 메세지가 뜹니다. 무슨말인지ㅠ