1) Пользователь зашёл на сайт, или на любую другую страницу, например:
my-site.localhost/media/12
2) Пользователь выбирает город в шапке, его перебрасывает на
my-site.localhost/branch/2
3) в actionBranch редирект делается на предыдущую страницу в шаге 1 ($this->goBack()).
4) Пользователь на той же странице. НО url остаётся
my-site.localhost/branch/2.
Как можно это пофиксить это? Хотелось бы чтобы на 4 шаге был url из первой.
При выборе города в шапке сайте, отправляется запрос в actionBranch. И в нём я устанавливаю Cookie какой город выбрал пользователь, и после
$this->goBack(). То есть actionBranch не рендерит страницу, а отправляет назад. В шаблоне header вызвается эта функция:
Url::remember(); для запоминания предыдущей страницы.
Полный код контроллера
public function actionBranch($id)
{
if (!$id) {
throw new HttpException(404, 'The requested page does not exist.');
}
$id = (int) $id;
$branch = Branch::find()
->andWhere(['id' => $id])
->visibled()
->one();
if (!$branch) {
throw new NotFoundHttpException('Не найден выбранный филиал');
}
$cookies = Yii::$app->response->cookies;
$cookies->add(new Cookie([
'name' => 'branchId',
'value' => $id,
]));
return $this->goBack('/');
}