以下是我的Controller
课程中的一些示例方法。现在,当用户单击New按钮时,$ task = add被发送到Controller并调用add()方法。正如你所看到它并没有真正做任何事情,它只是创建一个网址并将其转发到正确的视图。这是在MVC模式中做事的正确方法吗?
/**
* 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 :(得分:0)
我不相信这是正确的方法。我建议看看一些核心的Joomla!代码,看看它是如何完成的。我一直关注的一个很好的例子是Weblinks。看看他们在控制器的编辑功能中做了什么:
<强> ... /组件/ 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();
}
他们设置了视图和布局变量,然后调用parent :: display来让Joomla!出去展示那个视图/布局。