Как использовать Url:: remember in yii2

Я хочу создать ссылку на моей странице ошибки, чтобы вернуть пользователя к предыдущей ссылке.
Предположим, что текущий URL-адрес http://example.com/site/product , и пользователь пытается просмотреть
http://example.com/site/product?id=100 и продукт с id =100 не выходит, система должна выбросить ошибку 404 на страницу ошибки, теперь, если я хочу создать ссылку, чтобы вернуть пользователя http://example.com/site/product предыдущий URl how do I make this work. я могу сделать эту работу путем hardcoding это в моем файле представлений ошибки, но я хочу его динамически по мере того как я имею много регулятор действие используя такой же файл представления.

Я пробую это в моем сайте conteoller

controller/site

public function actions()
{
     $url = Url::remember();
    return [
        'error' => [
            'class' => 'yiiwebErrorAction',
        ],

       $this->render('error',['url'=>$url]), 
    ];
}

и попробуйте получить значение в файле представления ошибок, как это

   /views/site/error.php

  <p>
    <?= Html::a('go back', [$url)?>

</p>

но у него нет воля..
пожалуйста, любая хорошая идея о том, как сделать эту работу, я также открыт для нового решения

1 ответ

  1. это форма Yii2 руководство http://www.yiiframework.com/doc-2.0/guide-helper-url.html#remember-urls

    Есть случаи, когда вам нужно запомнить URL и затем использовать его
    во время обработки одного из последовательных запросов. Это может быть
    достигается следующим образом:

    // Remember current URL  Url::remember();
    
    // Remember URL specified. See Url::to() for argument format.
    Url::remember(['product/view', 'id' => 42]);
    
    // Remember URL specified with a name given
    Url::remember(['product/view', 'id' => 42], 'product');
    

    В следующем
    запрос мы можем получить URL запоминается следующим образом:

    $url = Url::previous();
      // or 
    $productUrl = Url::previous('product');