질문 Q #10249
view에서 foreach문을 사용할때.
수야디벨 2013-01-03 16:47:18


안녕하세요.

하나의 딱 완성된  view 페이지가 존재한다고 합니다.

CSS가 맞물려서 설계된 견고한  VIEW페이지라고  가정한다면,

여기에 PHP로 값을 넣을때 주로 foreach로 자주하곤 하는데요,

값을 넣고자 하는  곳을 foreach문으로 감싸버리면,

그 foreach문의  값이 있을경우는 상관 없는데 없어서  루프를  돌지 못할 경우,  감싸진 부분이 그려지지 않아서

예를들어서 컨트롤러에서 ..

$data['data'] = $this->model->get();
$this->load->view('view',$data);

처럼 무조건   던지게  해놓아버리면,

$data['data']에 값이 존재하지 않을 때도  있잖아요 ?

그러면 당연히 foreach문을 안돌테고 ..

view 전체가 깨져버리네요   ..


이런 경우는 어떻게 해 결해 나가야  하나요?

답변 4
#1 변종원(웅파) 2013-01-03 17:13:16
$data['data'] = array();  //가급적이면 변수 선언을 미리 해주는 것이 좋습니다.
$data['data'] = $this->model->get();

$this->load->view('view',$data);

뷰에서는 

if(count($data) > 0 )
{
    //데이터가 있는 경우
}
else
{
    //데이터가 없는 경우 <td colspan=3>데이터가 없습니다.</td> 정도 뿌려주면 됩니다. 
}
#2 수야디벨 2013-01-07 11:10:50

웅파//

감사합니다 :)

 

#3 criuce 2013-01-07 14:39:58
foreach 돌리기 전에 항상 is_array로 정상적인 배열인지 확인해 주셔야 합니다~
#4 우왕아항 2013-01-09 13:39:25
웅파님이 답변해주신대로, 미리 자료형을 설정해 놓는 것이 모든 프로그래밍 언어를 통틀어 표준적인 방법입니다.
php는 형변환이 자유로운게 장점이자 단점이 되는데, 형변환이 되는 경우는 최소한으로 만드시는 것이 개발자의 이해와 협업 측면에서 유연합니다.