public function actionActivate($id)
{
if(Yii::app()->request->isPostRequest)
{
$model = $this->loadModel($id);
$model->status = "ok";
$model->modified = date("Y-m-d H:i:s");
$model->save();
if(!isset($_GET['ajax'])){
$this->refresh();
$this->redirect(array('/products/my'));
}
}
else
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
}
public function actionMy()
{
$ProductsModel = new Products();
$dataProvider = $ProductsModel->retrieve();
$this->render('my',array(
'dataProvider'=>$dataProvider,
));
}
Делаю ПОСТ запрос на этот метод actionActivate(), потом идет редирект на метод actionMy(), где уже просто вытаскиваю все из таблицы Products. Проблема: Изменения отредактированной модели в actionActivate() будут видны только перезагрузки страницы.
перед редиректом? Не вижу смысла перезагружать страницу перед перенаправлением, да и, по-идее, после рефреша, т.к. массив POST будет очищен, метод actionActivate() должен вернуть ошибку.
Можно еще раз написать, в чем именно видна проблема? После первого поста у меня сложилось, судя по всему, неправильное понимание.
То бишь редирект вообще не срабатывает? Раз не выбрасывается 400 ошибка и модель апдейтится, тогда ответ напрашивается простой - !isset($_GET[‘ajax’]) возвращает false.
Пробовали проверить что приходит в $_REQUEST? или прописать echo ‘ANY’; внутри условия, сразу перед редиректом?
Нет, я видимо невнятно объяснил, попробую еще раз.
Находимся на странице products/my, отображаем продукты, жмем на один из них - POST заспрос на products/activate, выбранный продукт активируется, сохраняем его, отсюда редирект на prodcuts/my, тоесть обратно. Вот сдесь и наблюдается баг. по идее уже он должен быть активированным, но НЕТ, он все еще не активирован. Вот если порпосту нажать F5 то отображается как активированный. Вот так.
У меня такая же проблема. Видимо это баг фреймворка, либо кешируются данные. Хотя я нигде кеширование не включал, может где-то по умолчанию он срабатывает?
У меня есть страничка с отображением данных: заголовок и описание. Есть другая страничка, где эти данные добавляем. Как только данные добавляются в БД я делаю редирект на страничку со списком заголовков и описаний. Данные отображаются старые, после обновления странички уже становится видна новая добавленная запись. Как увидеть новую запись странички без использования обновления?