Помогите пожалуйста решить наверняка простейшую проблему.
Имеется действие, которое может быть вызвано по ссылкам с разных страниц приложения.
Код: Выделить всё
$this->menu=array(
array(
'label'=>'Действие', 'url'=>'#', 'linkOptions'=>array('submit'=>array('some_controller/some_action', 'param'=>$value))
),
);
Где-то, не помню уже где, откопал некий шаблон действия, который выглядит так
Код: Выделить всё
public function actionsome_action($param)
{
if(Yii::app()->request->isPostRequest)
{
// операции с ActiveRecord
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
}
else
throw new CHttpException(400,'Invalid request');
}
Код: Выделить всё
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
Объясните пожалуйста, как это работает и как сделать то, что мне нужно.
Что означает переменная $_POST['returnUrl'], кто и каким образом ее инициализирует ?
Или мне самому нужно ее создать и инициализировать нужным мне адресом возврата ?
По-хорошему, после выполнения действия мне вообще нужно просто обновить CGridView, чтобы он отображал обновленные данные.
Можно ли это сделать с помощью $this->menu ?