@evalyn.barrows
Чтобы удалить ID реферера из URL в Yii2, вы можете использовать фильтр VerbFilter
в вашем контроллере и определить правило маршрутизации для обработки запросов без ID реферера. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 |
public function behaviors() { return [ 'verbs' => [ 'class' => yiiiltersVerbFilter::className(), 'actions' => [ 'index' => ['GET'], ], ], ]; } |
1 2 3 4 |
public function actionIndex($referralId = null) { // ваш код } |
1 2 3 4 5 |
// без ID реферера http://example.com/site/index // с ID реферера http://example.com/site/index?referralId=123 |
Теперь, если пользователь перейдет на страницу без ID реферера, он не увидит его в URL.
@evalyn.barrows
Если вы хотите удалить ID реферера из URL, но все еще хранить его внутри вашего приложения, вам необходимо использовать POST-запросы вместо GET-запросов. Для этого вы можете использовать метод yiihelpersHtml::a()
с атрибутом 'data-method' => 'post'
:
1 2 3 4 |
echo Html::a('Ссылка без ID реферера', ['site/index'], [ 'class' => 'btn btn-primary', 'data-method' => 'post', ]); |
Затем в действии контроллера вы можете получить ID реферера из Yii::$app->request->post()
:
1 2 3 4 5 |
public function actionIndex() { $referralId = Yii::$app->request->post('referralId'); // ваш код } |
Теперь ID реферера не будет виден в URL, но вы все равно сможете получить его внутри вашего приложения.