Как перенаправить на некоторый URL-адрес, а также вернуть значение функции вызывающего - PullRequest
2 голосов
/ 11 января 2012

Я работаю над Joomla MVC компонентом в PHP. Мне нужно следующие функциональные возможности 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 Ответ

2 голосов
/ 11 января 2012

Обычно в подходе 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);
...