2010-06-17 2 views
0

다음은 내 Controller 클래스의 일부 샘플 메서드입니다. 이제 사용자가 New 버튼을 클릭하면 $ task = add가 Controller로 보내지고 add() 메서드가 호출됩니다. 보시다시피 실제로 아무것도하지는 않지만 단지 URL을 만들어 올바른보기로 전달합니다. 이것은 MVC 패턴에서 일을하는 올바른 방법입니까?보기에 Joomla 전달 코드가 ... 올바른 방법입니까?

/** 
* New button was pressed 
*/ 
function add() { 
    $link = JRoute::_('index.php?option=com_myapp&c=apps&view=editapp&cid[]=', false); 
    $this->setRedirect($link); 
} 


/** 
* Edit button was pressed - just use the first selection for editing 
*/ 
function edit() { 
    $cid = JRequest::getVar('cid', array(0), '', 'array'); 
    $id = $cid[0]; 
    $link = JRoute::_("index.php?option=com_myapp&c=apps&view=editapp&cid[]=$id", false); 
    $this->setRedirect($link); 
} 

답변

0

나는 이것이 올바른 방법이라고 생각하지 않습니다. 나는 핵심 Joomla의 일부를 보는 것이 좋습니다! 코드가 어떻게 완료되었는지 확인하십시오. 제가보기에 위대하고 쉬운 예가 웹 링크입니다. 그들의 컨트롤러의 편집 기능에서 무엇을 살펴보십시오 :

.../구성 요소/com_weblinks/컨트롤러/weblink.php

function edit() 
    { 
      $user = & JFactory::getUser(); 

      // Make sure you are logged in 
      if ($user->get('aid', 0) < 1) { 
        JError::raiseError(403, JText::_('ALERTNOTAUTH')); 
        return; 
      } 

      JRequest::setVar('view', 'weblink'); 
      JRequest::setVar('layout', 'form'); 

      $model =& $this->getModel('weblink'); 
      $model->checkout(); 

      parent::display(); 
    } 

그들은보기 및 레이아웃 변수를 설정 한 다음 Joomla!를 사용하기 위해 parent :: display를 호출하십시오! 나가서 해당보기/레이아웃을 표시하십시오.

+0

weblinks edit() 메서드가 내게 제공하지 않는 것을 알고 있습니까? – jax

관련 문제