CI 묻고 답하기

제목 Views 에서 같은 경로의 php는 어떻게 참조하나요?
글쓴이 kims 작성시각 2010/05/19 07:18:29
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 23299   RSS
현재 Views 단 밑에 a.php와 b.php가 존재합니다.

a.php는 b.php를 iframe형식으로 호출하는데요..

이럴경우 상대 경로를 어떻게 해야하는지 모르겠습니다.

절대경로를 쓰면 이 부분이 정상 출력이 되지만 system/application 등 필요없는 주소가 포함되어져야 하기때문에

문제가 되고.. 상대경로를 쓰니 인식을 못해서 답답하네요..

 <iframe src="./b.php" frameBorder=0 width=100% scrolling=no height=600px></iframe>

컨트롤러 단을 거치지 않고 iframe 내부에 b.php가 출력되는 방법을...

그리고 하나 더 궁금한게 있는데요

만약 view단에서 db를 액세스 하고자 한다면.. 어떤방식을 이용해야 하나요?
분명히 저희 CODEIGNITER 홈페이지에서 관련 글을 본거 같은데 검색을 해봐도 안보이네요...

알려주세요~~ 부탁드립니다.^^
 다음글 CI를 처음 써볼려고 하는데 어떻게 해야 할지를 모르겠... (5)
 이전글 뒤로가기 버튼을 누르면 웹페이지만료가 뜹니다. (3)

댓글

케이든 / 2010/05/19 09:49:32 / 추천 0
혹시 url에 index.php를 포함해서 사용중이신가요?
mycastor / 2010/05/19 10:02:02 / 추천 0
첫번째 문제는 만약 리눅스 서버의 경우 ln 명령어를 통해 링크를 생성하신 후 해당 파일을

불러오시면 해결 가능할 듯 합니다.

그리고 두번째 문제는 기본적으로 PHP에 포함되어있는 mySQL 관련 기본 함수를 사용하시면

됩니다. 시도를 해보진 않았지만 CI의 데이터베이스 클래스를 이용하는 것도 가능하지 않을까 하는

생각도 됩니다.

개인적인 생각이지만 컨트롤러를 거치지 않고 뷰를 로드하는 것 그리고 뷰에서 db에 직접 엑세스를

하신다면 굳이 프레임워크를 사용해서 MVC패턴으로 개발할 필요가 있을까?라는 생각이 듭니다.

MVC패턴이라는 정의된 규칙 범위 내에서 가지고 계신 문제를 해결하시는게 가장

바람직 하지 않을까 하는 것이 개인적인 생각입니다. ^^
변종원(웅파) / 2010/05/19 10:08:13 / 추천 0
kims님 질문하시는거를 보면 프레임워크를 쓰는 이유가 궁금해집니다.
프레임워크 내부에서의 흐름을 무시하고 쓸 수는 있지만 그렇게되면 왜 프레임워크를 사용하는지
의문이 생깁니다.
codeigniter가 유연하다는 것은 프레임워크이지만 프레임워크가 영향을 미치는 범위안에서
사용자가 이것저것 마음대로 할 수 있기때문이지 정상적이지 않은 방식을 사용할 수 있거나
사용한다는 의미는 아닙니다.

view에서 db연결이나 모델호출할 수 있겠죠. 그럼 컨트롤러는 왜 필요한가요?
그냥 프레임워크 쓰지말고 예전 방식 그대로 쓰시지요.

mvc패턴이 마음에 안드시면 차라리 view를 만들지 말고 컨트롤러에서 다 처리하시면 됩니다.
모델도 필요없고 컨트롤러에서 db연결해서 쿼리 날리고 echo로 결과 뿌리고.

제가 너무 주제넘게 뭐라고 하는 것 같지만 정말 프레임워크가 필요한지 한번 생각을 해보시기 바랍니다.
케이든 / 2010/05/19 13:13:25 / 추천 0
두분 정답을 얘기해주셧네요

저도 첨에 질문 읽어보고 꼭 저렇게 해야하나 싶었습니다


근데 보면 mvc 패턴을 이제 막 접하기 시작하면서 개념이 아직 덜 잡힌 상태라면

충분히 나올수있는 질문이라고 봅니다


첫 번째 질문,

프레임에 src="./b.php",  상대경로를 보자면 a.php가 기준이 아니고 최상위 index.php파일이 기준입니다

그러므로 어차피 상대경로도 필요없는 주소가 포함됩니다

그리고 b가 view파일이라고 하셧는데 프레임에 b를 넣으시는 걸 보면

controller와 model이 하도록 구분지어 놓은걸 b.php에서 한꺼번에 처리 하시려나 봅니다

윗 고수분들 말씀처럼 mvc패턴에 맞지않죠 (또, 뷰는 왠만하면 컨트롤러를 통해서 로드하게끔 합니다)

그럼 풀주소를 써서 컨트롤러가 뷰파일(b.php)을 부르도록 써야겠지요

또 풀주소를 써야하는 이유.

src="http://domain.com/system/application/views/b.php"

위처럼 절대 경로를 줬다고 합시다

mod-rewrite로 url에 index.php없이 사용하시게 될때

저 프레임주소는 router에 의해 system이란 controller가 없다고 404를 내뱉게 됩니다


두 번째 질문,

위에서 mvc에 대해서 말했으니 이부분은 당연히 저렇게 해야할 일이 없겟지요



예외는 있습니다

b.php에 php코드는 한개도 없고 택스트만 몇개있고

나는 정말 컨트롤러 필요없이 b를 불러야겠다 하시면

똑같이 풀주소를 쓰시되, hook의 젤 첫포인트 pre_system을 사용하여

b파일 을 인클루드시키면 되겟습니다

하지만 이런일이 있을까요?

전 이미지를 주소에 따라 다이나믹하게 resize해서 출력할때 빼곤 본적이 없습니다


그럼 정모때 뵙죠~
kims / 2010/05/20 01:25:15 / 추천 0

아~ 케이든님, 웅파님, mycastor님 답변 모두 감사합니다.^^
저도 view단에서 호출할경우 MVC패턴을 깨게 되는건데.. 라는 생각을 가졌었지만..
개념이 명확히 서지를 않은 상태에서 문제를 해결하려니 이런 질문을 했었던거 같네요..
하지만 이런 답변과 지적을 해주셔서 오히려 프레임워크를 사용하는 이유와 개발 방식에 대해
다시 한번 생각하게 되었던거 같습니다...  이러면서 좀더 배워가는거겠지요^^
좋은 답변과 지적 감사드립니다. ^^