질문 Q #8875
$data['param'] 으로 보낸값이 view 에 없으면 오류납니다.
불꽃코딩 2010-03-25 01:33:22
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);

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

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

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


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