Перенаправление с одного вида на другой — Yii2

Это моя форма на странице просмотра моего сайта.

<?= $form->field($model, 'taskID')->textInput(['readonly' => true, 'value' => Yii::$app->getRequest()->getQueryParam('id')])  ?>

<?php
$ifDistributor = User::find()->select('userType')->where(['username'=>Yii::$app->user->identity->username])->andWhere(['userType'=>'Distributer'])->exists();
$ifDistributorHasOnSiteSupport = Distributorinfo::find()->select('hasOnSiteSupport')->where(['UName'=>Yii::$app->user->identity->username])->andWhere(['hasOnSiteSupport'=>1])->exists();
if($ifDistributor)
if($ifDistributorHasOnSiteSupport)
echo $form->field($model, 'assignedToID')->dropDownList(
ArrayHelper::map(dektrium\user\models\User::find()
->select('username')
->where(['userType'=>'CCE-Distributer'])
->andWhere(['distributerID'=>Yii::$app->user->getId()])
->all(),'username','username'),['prompt'=>'Select Person']
);
else {
Yii::$app->session->setFlash('error',
"Invalid Page");
//I WANT TO REDIRECT TO index.php?r=tasks/index THIS URL

}
?>
<?= $form->field($model, 'remarks') ?>
<?= $form->field($model, 'scheduledTime')->widget(DateTimePicker::classname(), [
'options' => ['placeholder' => 'Enter event time ...'],
'pluginOptions' => [
'autoclose' => true
]
])  ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
</div>

Как показано выше в другой части, я хочу перенаправить на tasks/index этот URL
Помогите мне, как я могу сделать это в этом Посмотреть только.

9

Решение

использование Url::to() и не забудьте добавить yii\helpers\Url в заголовке.

Например,

return Yii::$app->response->redirect(Url::to(['path', 'id' => id]));

Перенаправление ()

9

Другие решения

Перенаправления выполняются в контроллерах или некоторых связанных компонентах, но не в представлениях, потому что рендеринг не имеет смысла в этом случае.

В контроллере вы можете использовать более короткую форму:

$this->redirect(['view', 'id' => $id]);

Обратите внимание, что вам не нужно использовать Url::to() помощник для создания URL, потому что он уже применяется внутри.

Вы также можете использовать:

Yii::$app->controller->redirect, если контроллер неизвестен, этот метод вызывает Yii::$app->response->redirect как Безумный череп упоминается в его ответе.

Посмотрите на код контроллера, сгенерированный GII, чтобы увидеть, как редирект используется после сохранения / удаления.

6