CI 묻고 답하기

제목 controller 에서 다른 컨트롤러 로드 하기
글쓴이 엠보싱 작성시각 2009/11/20 21:19:09
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 34624   RSS
오늘만 벌써 2번째 질문을 드리네요 ;;   
초보니까 질문이 많아도 이해해 주세요 ㅋ

음..우선적으로   한  컨트롤러에서  다른 컨트롤러를 로드하는  글을 검색을 통해 많이 읽었습니다.
http://codeigniter-kr.org/source/view/306/page/1/ 

음..그런데  이런 경우는  echo를 통한 단순 텍스트 , 스트링 출력 밖에 안되더라구요.

제가 레이아웃을 만들려구 하는데요
헤더 부분도 단순 텍스트가 아닌   ajax를 통해  DB에서  데이터를 읽어와  jquery로 뿌려주는 부분이라서 

main.php 에서   url 의 세그먼트를 읽어와  가변의 컨트롤.php 를  requier_once로 연결해주고  연결된 컨트롤러의 함수를

사용하려구 하거든요

예를 들어   header.php  , body.php , footer.php  가 있다면 
main.php 에서 헤더부분에  header.php 컨트롤러의  function을 출력해주고   중간 부분에  body.php 컨트롤러의 function을 출력해주는 방식으로요

그런데  
<?php

require_once 'welcome2.php';

class Welcome extends Controller {

	function Welcome()
	{
		parent::Controller();	
	}
	
	function index()
	{
		$second  = new Welcome2();
		echo $second->write();
	}
}
이런방식대로  사용하니까 
Call to a member function select() on a non-object

이러한 문구와 함께  model 쪽  DB 연결 부분에서  에러가  발생해서..;;

DB는   default로 하나만 쓰고 있구요  autoload 에서  database를  적어 넣었기 때문에

DB 연동 부분에서  에러가 날꺼라고는 생각도 안하고 있었는데........ㄷㄷㄷㄷㄷ;;

어떤 식으로 해결을 해야 하는지....ㅜ   

 다음글 Openblog중 웹에디터 질문 (2)
 이전글 php 초보적 질문. (7)

댓글

변종원(웅파) / 2009/11/20 22:57:59 / 추천 0
welcome2.php에서 사용하는 모델에서는

$CI =& get_instance();
$CI->db->select();

로 사용하셔야 할겁니다.

byung82 / 2009/11/21 15:58:36 / 추천 0
흠 차리라 content type 별 랜더링을 별개로 해주시고 기본적은것들은 모델로 만드셔서 사용하시는건 어떠신가요 ^^;
엠보싱 / 2009/11/23 20:29:53 / 추천 0

응답이 늦어서 죄송합니다.   ;;
웅파 /      흠....
welcome2.php 에서  사용하는 모델중  함수의 일부분인데요
$CI  =& get_instance();
  //$CI->db->select();
  $CI->db->where('user_id',$userid);
  $query = $CI->db->get('테이블명');
  return $query->row();

이런식으로  사용하라는 말씀이신지..'ㅈ'

byung82 /  ㅇ ㅏ..아직 CI 를 시작한지 얼마 되지 않아  거기까지는..-_-;;

ci세상 / 2009/11/24 00:28:39 / 추천 0
이게 get_instance로 간단하게 처리가 안되는것 같아서 위키에서 배포한 HMVC 로드함수로 사용하실 수 있도록 추천해 드립니다. 아래 ci코드 자료실에 수정하고 테스트한 소스 올려두었으니 참조해 보세요. 컨트롤러 지정및 값을 넘기는것까지 되어서 편해보였습니다.

http://codeigniter-kr.org/source/view/306