Joomla 컨트롤러에서보기로 데이터를 전달하는 많은 예를 보았습니다 (예 : here). 하지만 특정 뷰 파일 (view.html.php)에 Joomla 하위 컨트롤러를 전달해야합니다. 나는 하루 종일 그것에 대해 검색하고 해결책을 찾지 못했습니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?보기 Joomla 하위 컨트롤러에서 데이터를 전달하는 방법?
답변
Joomla MVC는 매우 느슨하며 여러 가지 방법으로이 동작을 구현할 수 있습니다. 나는이 줌라에서 MVC를 구현하는 대부분의 표준 순서라고 생각합니다 :
- 컨트롤러는 입력을 읽고 변수 세션의 관련 매개 변수를 설정
- 컨트롤러는 뷰
- 뷰로드로 리디렉션 모델
- 모델은 세션에서 매개 변수를 읽습니다.
그러나 3의 매개 변수를 처리하여 모델에 전달할 수 있습니다. 이것은 실제로 스타일/취향의 문제입니다. Joomla에서는 예를 들어 $ this-> get ('Data')을 사용하여 뷰에서 모델을 호출 할 수 있으므로 params를 전달할 여지는 없습니다. 그러나 $ model-> getData2 ($ param1, $ param2)를 호출하도록 선택할 수 있습니다.
기본 호출은 다음과 같습니다
단일 호출에 입력을 읽고 이전에 저장된 세션 데이터에 다시 떨어질JApplication::getUserStateFromRequest()
;
setUserState 세션에서이 정보를 유지하고 getUserState는 데이터를 검색하는 모델에 사용되는.
그러나 url에서 params를 전달하면됩니다. 그런 다음 view.html.php를 사용하여 메소드를 호출하기 전에 입력을 파싱하고 모델의 내부 상태를 설정하거나 ($ model-> setState) 리다이렉트를 완전히 피하고 컨트롤러에서 모델 및 뷰를로드하십시오 (더 표준적인 것처럼 보임). MVC에 쉽게 접근 할 수 있지만 Joomla에서는 거의 볼 수 없습니다.) 뷰를 렌더링 할 subcontroller를 사용할 수없는 이유
는 직접 컨트롤러
$vName = 'yourview';
$vFormat = 'html'; // raw
if ($view = $this->getView($vName, $vFormat)) {
$model = $this->getModel($vName);
$model->setState('filter.type', $type);
$view->setModel($model, true);
// Push document object into the view.
$view->assignRef('document', $document);
$view->display();
}
$ model-> getData2 ($ param1, $ param2) 방식으로 모델과 통신 중입니다. 제 질문은 뷰와 컨트롤러를 의사 소통하는 것이 었습니다. 나는 세션없이 이것을 할 수있는 방법이 있어야한다고 생각한다. – Ruwantha
당신은 setRedirect (JRoute :: _ ('index.php? option = ... & param1 = something & param2 = somethingelse; 또는 컨트롤러에서 수동으로 뷰를 인스턴스화하고 render() 메소드를 호출 할 수 있습니다.) –
예 . 고마워.하지만 다른 모든 프레임 워크와 같은 기능이 있다면 여전히 좋겠다. – Ruwantha
- 1. 보기 컨트롤러에서 하위 컨텍스트를 유지합니다.
- 2. 뷰에 컨트롤러에서 데이터를 전달하는 방법
- 3. 컨트롤러에서 데이터를 CI로 전달하는 방법
- 4. 컨트롤러에서 간단한 데이터를 cakePHP보기로 전달하는 방법
- 5. 보기 컨트롤러에서 UITableViewCell 보내기
- 6. joomla 컨트롤러에서 모델로 변수를 전달하는 방법은 무엇입니까?
- 7. 내비게이션 컨트롤러에서 하나의보기에서 다른보기로 데이터를 전달하는 방법
- 8. 하나의보기 컨트롤러에서 다른 SWIFT로 데이터를 전달하는 방법
- 9. 스프링에서 컨트롤러에서 프런트 엔드로 데이터를 전달하는 방법
- 10. 보기 컨트롤러에서 호출 방법 (ROR) 뷰 컨트롤러에서
- 11. 보기 컨트롤러에서 요소를 업데이트하는 방법
- 12. 보기 컨트롤러에서 RCTRootView를 사용하는 방법?
- 13. 컨트롤러에서 Joomla 2.5의 모델로 데이터를 전달
- 14. Angular.js - 컨트롤러에서보기로 데이터를 전달하는 방법
- 15. 보기 컨트롤러에서 내 팝업보기 컨트롤러 (스위프트/아이오스)에 데이터를 전달하는 방법
- 16. 보기 컨트롤러에서 AppDelegate로 NSMutableString 개체를 전달해야합니다.
- 17. Android : 하위 활동으로 데이터를 전달하는 방법?
- 18. UITabBarController에 데이터를 전달하는 방법
- 19. 보기 컨트롤러간에 개체를 전달하는 방법
- 20. 보기 컨트롤러간에 nsarrays를 전달하는 방법
- 21. 컨트롤러에서 요청 데이터를 설정하는 방법
- 22. 보기 컨트롤러에서 일부보기 제거
- 23. 보기 컨트롤러에서 테이블보기 설정
- 24. 보기 컨트롤러에서 사전 전달
- 25. 레일 -보기 또는 URL에서 도우미로 데이터를 전달하는 방법
- 26. 컨트롤러에서 다른 컨트롤러로 데이터를 전달하는 경우
- 27. 컨트롤러에서 CakePHP의보기로 데이터를 전달하는 방법은 무엇입니까?
- 28. 컨트롤러에서 Codeigniter보기로 데이터를 전달하는 중 오류가 발생했습니다.
- 29. 보기 컨트롤러에서 다른 테이블보기 컨트롤러로 데이터를 표시하기위한 iOS 개발
- 30. 컨트롤러에서 자바 스크립트로 데이터 전달 (보기 무시)
에서보기를 호출? 하위 컨트롤러가 부모 동작을 모두 가져야합니다. – DevZer0
뷰를 렌더링해야 할 경우, $ this-> setRedirect (JRoute :: _ ('내 뷰의 경로')); 하지만 그것으로 일부 데이터를 전달하고보기에서 액세스 할 수있는 방법을 찾을 수 없습니다 – Ruwantha
당신이 하위 컨트롤러 말을하면 JController를 확장 뭔가를 말하는거야? – DevZer0