CI 묻고 답하기

제목 [질문]세그먼트,파라미터 무시하기
글쓴이 이현우 작성시각 2012/04/18 11:35:03
댓글 : 6 추천 : 1 스크랩 : 0 조회수 : 19157   RSS
안녕하세요

맨날 눈팅만 하다가 이렇게 몇자 적으려니 은근히 긴장되네요 ㅎㅎ (뭥미? 이렇게 될까봐요)

아무튼 질문해보겠습니다.

컨트롤러에서 옳바른 파라미터 인지 확인하기 위해

생성자에서 확인후 옳바른 값이라면 DB 에서 필요 값을 전역 변수에 담습니다


확인이 된 파라미터는 불필요 해지며

각각의 함수에서 불필요 해지므로 그 파라미터를 무시 하고 싶은데요

제 머리론 어떻게 해야 할지 도저히 감히 오질 않네요 ㅎㅎ

고수분들 도움을 요청 합니다!!
 
class Posts extends MY_Controller {
    
    // 전역 변수 선언
    private $BOARD = array();
    
   // 생성자
    function __construct() {    
        parent::__construct();
        
        // 세그먼트 갖고 오기
        $boa_eng_title = $this->uri->segment(3);
        // 모델 호출
        $this->load->model('board_model');
        // DB에서 값 갖고 오기
        $boa_row = $this->board_model->findByBoa_eng_title($boa_eng_title);
        // 없다면 홈으로 되돌리는 사용자 정의 함수
        $this->valCheck($boa_row, 'welcome/home');
        // 전역 변수에 담기        
        $this->BOARD = $boa_row;
    }
    
    /**
     * 각각의 게시물 목록
     */
    function admin_viewPost($boa_eng_title = '', $return ='') {
       //$boa_eng_title 문제의 불필요 파라미터
       // 생성자에서 이미 처리된 파라미터라 아예 무시 하고 싶어요..
    }


 다음글 php 업데이트후 CI작동 안됩니다. (14)
 이전글 코드이그나이터 파일이 전부 ANSI인데 저만 그런가요? (2)

댓글

변종원(웅파) / 2012/04/18 11:43:29 / 추천 0
무시를 한다는 말은 그냥 안쓰시면 되는거 아닌가요? ^^
세그먼트이건 파라미터건 개발자가 불러와야 쓸 수 있는 것이라서 안쓰고 싶으면 있더라도
안쓰면 그만인데요. 다른 목적이 있으신건가요?

생성자에서 $boa_eng_title 을 선언하더라도 아래 admin_viewPost 메소드에서 안쓰시면 되는데요.
메소드 내부적으로 $this->BOARD 데이터 가져다 쓰시면 되는거 아닌가요?
한대승(불의회상) / 2012/04/18 11:44:57 / 추천 0
unset($boa_eng_title);
변수 자체를 날려 버리고 싶은 거라면...


이현우 / 2012/04/18 11:56:43 / 추천 0
여러분들 댓글 감사 합니다 ㅎㅎ

제가 원했던건  각각의 메소드에서  

사용 하지 않을 변수를 선언 하고 싶지 않았던 겁니다^^;;

프로그램은 구동엔 상관없으나..

저의 욕심-_- 억지랄까요?...
변종원(웅파) / 2012/04/18 16:49:33 / 추천 0
아직도 저는 의도가 궁금합니다. ^^;

선언하지 않고 싶으시면 안하시면 되는건데요.... ^^

위 생성자와 각 메소드들에서의 변수 상관관계를 알 수가 없기 때문에
왜 그렇게 원하시는지 알 수가 없습니다. 

메소드에 넘겨주는 파라미터를 개발자 본인이 안쓰고 싶으면 안쓰면 되는거라서요.

혹 주소 자체에서 파라미터를 없애는 것을 생각하시는 건가요?
헛발이 / 2012/04/18 17:34:31 / 추천 0
추측을 해 보면
1. Posts 라는 콘트롤러이기 때문에 아마도 게시판을 만드시는거 같고...
2. admin_viewPost라는 메소드이니 아마도 관리자쪽의 게시판 내용보는 부분 같고..
3. __construct안에서 한것을 보아 제목을 받아 데이터를 찾아 오는거 같은데요..

특별한 사항이 아니라면 윗처럼 하는것 보단 이렇게 하는것을 권장만 해 드립니다..

 class Posts extends MY_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('board_model');
    }

    function _remap()
    {
        $boa_eng_title = $this->uri->segment(3);
         switch ($boa_eng_title):
             case('register'):
                 $this->register();
                 break;
             case('modify'):
                 $this->modify();
                 break;
             case('delete'):
                 $this->delete();
                 break;
             default:
                 $this->admin_viewPost();
                 break;
         endswitch;
    
    }

     ...

    function admin_viewPost()
    {
        $boa_eng_title = $this->uri->segment(3);
        if ( !($data['query'] = $this->board_model->findByBoa_eng_title($boa_eng_title)) )
        {
            redirect(base_url());
        }
        ...
        $this->load->view('viewPost_form', $data);
    }

이현우 / 2012/04/26 10:42:19 / 추천 0
헛발이님 감사합니다 응용하면 유용 할거 같습니다 ㅎㅎ

제생각을 읽으셨군요 ㅎㅎ

_remap() 을 어떻게 사용 하나 했는데..  고맙습니다