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