뷰가 컨트롤러에서 제공되는 경우 해당 뷰에서 생성 된 데이터를 게시물을 통해 전달하고이를 모델로 직접 전달하거나 컨트롤러를 통해 돌아 가야합니까? 보기를 제공하고 컨트롤러에서 모델을 호출?컨트롤러에서 뷰를 통해 모델로 데이터를 전달하는 MVC 혼동
답변
MVC의 불가지론 적 접근법에서 모델로 돌아가는 뷰는 correct approach입니다. 정석 꾼은 언제나 관제사에게 돌아갈 것이라고 말할 수 있습니다.
here에서 코멘트 ... 모델은 행동과 (보통 뷰에서)의 상태에 대한 정보 요청에 응용 프로그램 도메인의 데이터, 응답을 관리하고 응답
상태로 변경 (일반적으로 컨트롤러에서).
"보통"이라는 문구가 중요합니다. 패턴은 어느 정도 관리가 쉽고 유지 보수가 용이하도록 설계되었습니다. 때때로 패턴은 유지 보수가 가능하고 관리가 용이 한 방식으로 목표를 달성하는 데 방해가되며 때때로 남용됩니다.
나는 어느 쪽의 경로가이 인스턴스 (소규모)에서는 괜찮을지를 모으 겠지만, 응용 프로그램 전체에서 문제에 어떻게 접근하고 있는지에 대해서도 알고있다.
CodeIgniter 뷰에서는 컨트롤러에서 데이터를 가져 와서 매개 변수를 역 다중화/유효성 검사하고 모델에서 적절한 데이터를 검색합니다.
조회수가 출력됩니다 : 그것은하는 것이 중요합니다. HTML/XML/JSON/CSS (페이지, 논리적 부분 또는 API 및 리소스와 같은 출력 데이터 조각)를 정의하므로보기가 모델과 직접 결합되지 않습니다. 즉, CI의 뷰에서 모델을 호출하지 않습니다.
컨트롤러는 프록시입니다. 컨트롤러 및 모델은 출력을 생성하지 않습니다. 컨트롤러는 GET 및 POST 요청을 가져 와서 결과를 인쇄하기 위해보기에 필요한 호출을 수행하며 종종 매개 변수를 확인하고 여러 모델 호출을 다중화하여 모든 적절한 데이터를 가져옵니다.
모델은 데이터를 가져오고 넣습니다. 모델은 모델의 데이터 객체로 또는 더 일반적인 (그러나 일관된) 데이터 해시로 데이터를 불가 지 형식으로 반환해야합니다. 리턴 된 모델 데이터가 클수록 뷰와 모델 사이에 더 적은 커플 링 (모델 조각을 재사용 할 수있게됩니다)이 줄어 듭니다.
- 자바 스크립트는 종종 뷰에 관련 끝 (그리고 일반적으로 컨트롤러 작업, 검증 등의 작업을 수행 할 수 있음) : CodeIgniter의에서
는 중복을 찾을 수있는 몇 곳이 있습니다. 보기에서 자바 스크립트를 이동하여이를 향상시킬 수 있습니다 (더 큰 조각에서는 잘 작동하고 작은 조각에서는 잘 작동하지 않음).
목표는 특정 사양을 충족하는 데이터를 수신한다는 점을 제외하고 모델을 인식하지 못하게하는 것입니다. 컨트롤러는 HTML 출력을 생성하지도 않고 직접 데이터에 액세스하지도 않으며, 모델은 대부분 SQL이나 다른 형태의 데이터를 가져 와서 구조화 된 것으로 채워 넣습니다.
예, 양식 데이터를 컨트롤러 기능에 제출합니다. 이 함수는 데이터를 처리하고 뷰를 호출합니다.
다른 방법으로 시도하면 코드가 손상됩니다.
하나의 기능으로 양식의 원래 표시와 해당 양식의 제출을 처리 할 수 있습니다.
양식이 제출되었는지 확인하고 제출 된 경우 데이터를 처리하고 양식을 표시하십시오.
function login(){
if($this->input->post('submitted')==1){
//process the form data
}else{
//show the form
}
}
- 1. 컨트롤러에서 모델로 값을 전달하는 방법은 무엇입니까?
- 2. 뷰백에서 CSHTML 모델로 데이터를 전달하는 방법
- 3. MVC 모델 바인딩 혼동
- 4. 보기에서 컨트롤러로 데이터를 전달하는 MVC
- 5. 하나의 컨트롤러에서 여러 모델로 Searchlogic 사용
- 6. Ajax를 통해 데이터를 보내고 액션 컨트롤러에서 처리하기
- 7. 컨트롤러에서 모델로 파일을 매개 변수로 보내려면 어떻게해야합니까?
- 8. MVC 패턴으로 다시 팩터링 - 컨트롤러에서 뷰를 분리 할 때의 의문함
- 9. 컨트롤러에서 뷰를 표시하고 닫으려면 어떻게해야합니까?
- 10. 컨트롤러에서 필터로 데이터를 전달하십시오.
- 11. MVC RouteDatas가 혼동 스럽습니다
- 12. MVC 경로에 대한 혼동
- 13. ASP.net에서 세션없이 페이지간에 데이터를 전달하는 방법 MVC
- 14. ASP .NET MVC 뷰간에 데이터를 전달하는 방법
- 15. 소켓을 통해 XML로 데이터를 전달하는 방법은 무엇입니까?
- 16. UITabBarController에 데이터를 전달하는 방법
- 17. ZK 스프링 MVC 컨트롤러에서 변수를 ZK zul로 전달하는 방법은 무엇입니까?
- 18. 모델로 웹 서비스가있는 ASP.Net MVC?
- 19. VB.net 이벤트 발생 ... 혼동! MVC
- 20. UITabBarController에서 시작한 컨트롤러에서 모달 뷰를 체인화하는 방법
- 21. MVC 컨트롤러에서 코드 복제
- 22. 컨트롤러에서 MVC 삽입/업데이트
- 23. asp.net mvc 컨트롤러에서 데이터 persistenc
- 24. 기본 MVC - 다른 컨트롤러에서 모델 컨텐트 편집
- 25. Spring MVC 컨트롤러에서 JSON 또는 View를 반환하십시오.
- 26. uinavigation 컨트롤러에서 아래에서 위로 뷰를 푸시
- 27. 레일즈 컨트롤러에서 뷰를 명시 적으로 선언하려면 어떻게해야합니까?
- 28. ASP.net MVC - 다양한 뷰를 통해 모델을 유지하는 방법
- 29. 스프링 MVC 및 JSP - 컨트롤러에서 jsp로 데이터를 전달할 수 없습니다.
- 30. codeigniter 컨트롤러에서 jquery 변수를 전달하는 방법은 무엇입니까?
그래서 모델을 뷰에서 호출하겠습니까? – roger
@Roger 추가 정보 추가 ... –
뷰에 너무 많은 코드를 추가하지 않고도 뷰에서 모델을 호출하는 방법을 여전히 볼 수 없습니다. 모델에서 뷰의