제목 | 콘트롤러에서 파라메터 값을 넘길 시... | ||
---|---|---|---|
글쓴이 | 닥스훈트 | 작성시각 | 2012/06/05 04:27:56 |
|
|||
아래와 같은 콘트롤러가 있습니다.function view_site($id='') { $this->load->model('sites/sites_model'); $site=$this->sites_model->get_site($id); $data['title']="Record view"; $data['row']=$site; $this->load->view('sites/view', $data); } 그러면 저 컨트롤러는 http://127.0.0.1/view_site/3 뭐 이런식으로 호출 가능하다는건 알고 있습니다만... 컨트롤러 호출을 이렇게 한다면 anchor('view_site', $row->id) 위 view_site 콘트롤러에서 function view_site($id=''){라고 된 부분에서 $id 변수의 값에 $row->id 로 읽어진 id 의 값이 들어가게 되는건가요? view_site($id = '') 와 같이 빈값을 파라메터로 받는 함수(콘트롤러) 정의는 본적이 없어서 말입니다. |
|||
다음글 | hmvc에서 모듈 생성할 때 데이터를 넘겨줄려면? (2) | ||
이전글 | 간단한 모델에서의 구문 질문. (2) | ||
변종원(웅파)
/
2012/06/05 05:44:07 /
추천
0
echo $id; 해보세요
|
닥스훈트
/
2012/06/05 08:54:23 /
추천
0
아.. 감사합니다..
곰곰생각해보니 view_site( $id = '' ) |
pithecus
/
2012/06/05 09:47:38 /
추천
0
function view_site( $id = '' )
|
닥스훈트
/
2012/06/05 09:50:13 /
추천
0
근데 function view_site($id='') 나 function view_site($id)나 사실상 매개변수 초기값 설정(혹은 디폴트 설정)하는 것 이외엔 차이가 없는데 왜 후자의 경우는 에러가 날까요?
에러 내용은 Severity: Warning Message: Missing argument 1 for Sites::view_site() 이라고 뜨네요. |
pithecus
/
2012/06/05 10:10:05 /
추천
0
CI 에서는 컨트롤러를 호출할 때 URL 규칙에 따라 자동으로 매개변수를 입력해주거든요
즉 http://domain/view_site -> view_site() 호출 http://domain/view_site/111 -> view_site(111) 호출 ( http://codeigniter-kr.org/user_guide_2.1.0/general/controllers.html ) 그러므로 function view_site($id) 로 정의를 하면 http://domain/view_site -> view_site() 호출 -> argument 에러 발생 function view_site($id='') 로 정의를 하면 http://domain/view_site -> view_site() 호출 -> 매개변수가 없으니 $id ='' -> 에러 없음 이렇게 동작을 하게 됩니다. |
변종원(웅파)
/
2012/06/05 10:40:39 /
추천
0
닥스훈트/ 어렵게 생각하면 한 없이 어려워집니다.
$id='' 이 부분은 값이 안 넘어올 경우 말씀하신대로 에러가 나기 때문에 미리 정의를 해주는 겁니다. php는 변수 선언 없이 바로 사용해도 문제가 안되지만 c 언어 같은 것은 미리 선언하지 않고 쓰면 에러가 납니다. php에서도 귀찮지만 변수는 미리 선언해 놓는 습관이 좋습니다. |
닥스훈트
/
2012/06/05 13:33:59 /
추천
0
음.. 감사합니다.
CI를 해보니 의외로 메뉴얼로는 좀 더 직관적으로 알 수 없는 자잘한 문법이 많던데.. 하나하나 정리를 해봐야겠습니다. |