如何重定向到某个网址并返回调用函数的值?

时间:2012-01-11 14:07:12

标签: php model-view-controller redirect joomla return-value

我正在使用PHP中的joomla MVC组件。 我需要以下功能1)& 2)在我的组件代码中的一个model.php中。

function xyz()
{
 //blah blah
 //1) I have to redirect
 $mainframe->redirect( 'index.php?option=com_abc','');
 //2) and also return value to caller function 
 return $row; 
}

我如何实现这一目标?

谢谢:)

1 个答案:

答案 0 :(得分:2)

通常,在MVC方法中,模型不应该重定向用户,这是在控制器上完成的。在控制器上,您可以执行以下操作:

$this->setRedirect($url, $optional_message);

// some more code to be executed

这样,用户将在当前控制器的操作完成后重定向,而不是在您调用setRedirect方法时完全重定向

但如果您确实需要在模型上执行此操作,则可以将控制器作为参数传递给模型的函数,并从那里设置重定向并返回值:

<?php
function xyz($controller)
{

    $controller->setRedirect( 'index.php?option=com_abc','');

    return $row; 
}
?>

然后,在你的控制器中:

$model->xyz($this);