CI 묻고 답하기

제목 $data['param'] 으로 보낸값이 view 에 없으면 오류납니다.
글쓴이 불꽃코딩 작성시각 2010/03/25 01:33:22
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 26780   RSS
http://khaic01.cafe24.com/board/read/28/name/3


http://khaic01.cafe24.com/board/read/28/name


name 이라는 변수가 view 에서 없으면 오류나네요.

나중에 복잡하게 데이터 넘기다가 하나라도 없으면 이리 오류를 뿜어 내니... 걱정입니다. ㅎㅎㅎ

그냥 날코딩 할땐 걱정안했던 부분이거든요.

혹시,

기본값으로, 세그먼트가 존재하지않으면 FALSE 를 리턴합니다. 필요하다면, 두번째 파라미터로 세그먼트가 없을때 리턴될 기본값을 지정할수 있습니다. 예를들어 , 아래예제는 실패시에 숫자 0을 리턴하도록 합니다:

$product_id = $this->uri->segment(3, 0);

이런식으로 자동 처리되게 할 수는 없는지요?
 다음글 Model 의 함수가 호출이 안되는데요.. -_- (1)
 이전글 segment 를 안쓰는 방법이 있는지요? (3)

댓글

헛발이 / 2010/03/25 01:43:55 / 추천 0
저는 그렇게 해요... 세그먼트가 없다는 것은 데이터가 없다는거잖아요...그래서 뷰에서 처리 하지 않고 ..
콘트롤러에서..
if (is_null($data['id']=$this->get_seg('id'))):
    //데이터가 없으니 뷰까지 갈필없어요...
    redirect('원래있던곳');
endif;
이렇게 하고 있어요.
그게 아니고 있을때도 있고 없을때도 있고 그러면
$data['id'] = (!is_null($thid->get_seg('id'))) ? $this->get_seg('id') : null;
이렇게 하는데...
변종원(웅파) / 2010/03/25 09:33:24 / 추천 0
 사실 여태 처리해왔던 방식이 잘못 된 것인데 인식을 못하고 있었을 뿐입니다.
php는 변수 선언을 미리 안해도 되는 점이 큰(?) 장점중 하나였는데 그러다보니
없는 변수를 뒤에서 echo로 뿌려도 에러가 안났죠.

$product_id = $this->uri->segment(3, 0);

사용하시다보면 이 방식이 귀찮기는 해도 맞다는게 느껴지실 겁니다.


불꽃코딩 / 2010/03/25 10:46:51 / 추천 0
헛발이님//
segment 뿐만 아니고 view 파일에서 변수를 하나 선언했는데 거기에 아무값도 없으면 오류가 난다는것인데요
이건 근본적으로 해결 불가인거 같습니다.
불꽃코딩 / 2010/03/26 22:11:41 / 추천 0
$data['no'] = "";
컨트롤러에서 이렇게 처리하면 되네요 ^^;
켘... 이리 쉬운걸 ㅎㅎㅎ