개발 Q&A

제목 CI 기초질문입니다.
카테고리 기타
글쓴이 센치 작성시각 2018/04/01 13:38:43
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 883   RSS

콘트롤러

==============================================================

class A extends CI_Controller {

    public function index()

    {

       $a['c']=array("a","b","c");

       $this->load->view('welcome_message',$a);

    }

    public function Some()

    {

        echo "Test 안에 Some  입니다.";

        $this->load->view('welcome_message');

    }

=============================================================

<?

foreach($c as $key => $val)

{

         echo $val."<br>";

}

?>

주소창에 a 로 들어갈시에는 정상작동합니다만

a/some 으로 갈시에 변수값이 지정되지 않아서 오류 메시지가 나옵니다만 이럴때는 어떻게 해야하나요

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: c

 

A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

 

뷰단에서 몬가 작업해야줘야 하나요

 

 다음글 AWS 웹과 IOS, Android 앱 간의 데이터베이... (2)
 이전글 CI 3.x 에서 PG사에서 보내주는 EUC-KR 읽기... (1)

댓글

빛그림 / 2018/04/01 14:09:27 / 추천 0
메소드 첫글자가 대문자 이므로 a/Some 으로 접속하셔야 하고, a/some으로 접속을 원하신다면 function some() {} 이렇게 소문자로 쓰셔야 해요.
변종원(웅파) / 2018/04/01 22:46:32 / 추천 1

컨트롤러에서 데이터를 넘기지 않아서 없는 것을 호출해서 나오는 에러는 지극히 정상적인 것입니다.

여러 주소에서 같은 뷰를 사용하는 것은 흔한 일이 아닙니다. (헤더, 푸터 제외)

꼭 위와 같이 써야 한다면 빈 배열이라도 넘기세요.

센치 / 2018/04/02 02:54:13 / 추천 0
답변감사합니다
/ 2018/04/02 20:32:52 / 추천 0

일단 개념적을 설명하자면

index 함수와 some 함수는 별개 입니다.

접속시 a/some 이라고 접속하신 경우 index 함수는 동작(실행)하지 않습니다.

물론 index에 선언된 변수들도, 없는 상태 입니다.

컨트롤러의 메소드(함수) : 는 각각의 페이지 주소와 매핑되여 페이지 역활을 하고, view 와 모델을 연결해주는 역활을 합니다.

view : 사용자에게 제공되는 화면을 구성합니다. 컨트롤러에서 가공된 데이터를 내려받아 화면에 표시하는 역활도 합니다.

 

자 위에 설명한 데로 보자면 some의 경우 컨트롤러에서 데이터를 아무것도 내려주지 않았기 대문에, view에서는 데이터가 없어서 에러를 표시 한다고 이해 하시면 됩니다.