Задать вопрос
@faradeifrontend
Использую пробелы для отступов ;)

Как сделать редирект yii на прошлую страницу?

Есть страница comp/computer?id=15
на ней есть типо отзывы которые можно редактировать comp/computer/update?id=2
Я хочу чтобы после того как изменил отзыв. = вернуться опять к этой странице с товаром.
Если прям в лоб написать таким способом то вернусь, именно к 15.
return $this->redirect(["?id=15"]);
Но мне кажется нужно как-то отсюда id получить $computers = addComputer::findOne($id); = но если использовать её в actionUpdate = то Unused local variable 'computers'. The value of the variable is not used anywhere.

public function actionUpdate($id)
	{
		$model = new ReviewForm();
		$comment = Review::findOne($id);
		$computers = addComputer::findOne($id);  
		// если пришли post-данные
		if ($model->load($this->request->post())) {
			// проверяем и сохраняем эти данные
			$comment->text = $model->text;
			if ($comment->save(false)) {
				return $this->redirect(["?id=15"]);
			}
			// данные не прошли валидацию
			Yii::$app->session->setFlash(
				'success',
				'Success'
			);
		}

		$model->setAttributes($comment->getAttributes(['name', 'email', 'text']));
		return $this->render('update', compact('model'));
	}
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@faradeifrontend Автор вопроса
Использую пробелы для отступов ;)
Нужно было изменить
<?= Html::a('Редактировать', Url::to(['computer/update', 'id' => $comment->id])) ?>

на
<?= Html::a('Редактировать', Url::to(['computer/update', 'id' => $comment->id, 'cid'=>$computers['id'] ])) ?>

И
public function actionUpdate($id,$cid)
	{
		$model = new ReviewForm();
		$comment = Review::findOne($id);

		if ($model->load($this->request->post())) {

			$comment->text = $model->text;
			if ($comment->save(false)) {

				return $this->redirect(["computer/", "id"=> $cid]);
			}

			Yii::$app->session->setFlash(
				'success',
				'Success'
			);
		}

		$model->setAttributes($comment->getAttributes(['name', 'email', 'text']));
		return $this->render('update', compact('model'));
	}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы