CI 묻고 답하기

제목 수정하기 부분 질문있습니다.
글쓴이 과학나라 작성시각 2013/09/25 18:13:17
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 15641   RSS
 컨트롤러


    function edit_find($return1) 
    {
        $this->load->model('simplebbsmodel'); // 모델 - 호출
        $return3 = $this->simplebbsmodel->edit_entry($return1);
        
        $this->load->view('view_message',$return3);
    }  
모델


  //edit->글수정  
     function edit_entry($edit_id)
     {
       $this->db->select('*');
       $this->db->from('board');
       return $this->db->update('board', array('no'=>$edit_id));
     }       


일단 컨트롤러에서 view에서 가져온 값들을 model로 보내고 그걸 모델은 update로 처리한 뒤 return했습니다.

그래서 컨트롤러에서 view로 뿌리는작업인데요

무엇이 잘못있는지 모르겠네요 ㅠ,ㅠ    가이드 보고 따라한건데 ㅠ,ㅠ

너무 어렵네요 ㅠ,ㅠ 부탁드립니다.













 다음글 output 클래스를 이용할시 HTTP Header가 ... (4)
 이전글 궁극적으로 ci를 쓰는 이유? (5)

댓글

변종원(웅파) / 2013/09/25 19:13:29 / 추천 0
과학나라님 소스 하고 아래하고 뭐가 다른지 비교해보세요.


<?php

class Page extends CI_Controller {

   function index()
   {
      $data['page_title'] = 'Your title';
      $this->load->view('header');
      $this->load->view('menu');
      $this->load->view('content', $data);
      $this->load->view('footer');
   }

}
?>

Artz / 2013/09/25 21:02:26 / 추천 0
* 컨트롤러의 View 호출 부분

기본적으로 View를 로드할때 넘기는 파라미터(배열)의 키값이 View 페이지에서 사용할 변수명이 됩니다.

$param = array(
    'param1' => 'temporary value1',
    'param2' => 'temporary value2',
);

$this->load->view('viewname', $param);

위와 같은 형태로 View를 로드했을 경우에, View 페이지에서는 아래와 같이 사용할 수 있습니다.

<body>
Param1 = <?= $param1 ?> <br />
Param2 = <?= $param2 ?> <br />
</body>
CI 매뉴얼의 View 부분에서도 자세히 설명되어 있는 부분입니다.

※참고 : http://www.codeigniter-kr.org/user_guide_2.1.0/general/views.html


* 모델의 Active Record 부분

문제가 있는 부분을 말씀드리면,
액티브레코드의 select(), from()을 사용만으론 해당 쿼리를 실행하지 않습니다.
get() 이나 get_where()을 호출해야, 쿼리를 실행하여 결과를 가져오게 됩니다.

※참고 : http://www.codeigniter-kr.org/user_guide_2.1.0/database/active_record.html

위의 소스에선 해당 부분이 빠져있습니다.
또한 edit_entry() 함수는 board 테이블의 no 필드를 업데이트한 결과인 True or False를 리턴하고 있는데,
select문이 왜 필요한지가 불명확하네요.


위 설명드린 내용을 요약하자면 다음과 같습니다.

1. View 호출시, 연관배열을 파라미터로 받는다.
2. edit_entry() 함수는 True/False를 리턴한다.
한대승(불의회상) / 2013/09/26 11:43:27 / 추천 0
현재 모델 부분을 보면 board 테이블의 no 값을 모두 $edit_id 값으로 바꾸도록 되어 있습니다.

return $this->db->update('board', array('no' => $edit_id);
이 부분 위에 명시된 
$this->db->select('*');
$this->db->from('board');
이 2문장은 update와는 상관이 없으며 왜 있어야 하는지 이유를 모르겠습니다.

$edit_id를 기준으로 무언가를 수정해야 한다면
$this->db->where()
를 사용하시거나 update()문에 3번째 파라메터를 기술하십시오.

아래 URL을 참조 하시면 더 자세한 부분을 알수 있습니다.

cikorea.net/user_guide_2.1.0/database/active_record.html#update