Как получить значение из URL-адреса в silverstripe

Я хочу напечатать значение 5 на странице ss.

www.xyz.com?a=5.

Как получить данные URL-адреса в silverstripe? Любая помощь принимается.


person Abhishek Singh    schedule 17.02.2015    source источник


Ответы (1)


В вашем контроллере, для которого предназначен ваш шаблон Silverstripe, вы можете получить «GET» (также известный как строка запроса), возвращая результат $this->getRequest()->getVar('a') в функции вашего контроллера.

Рекомендуется использовать $this->getRequest()->getVar('a') вместо $_GET['a'], так как SilverStripe автоматически очищает строку.

Когда ваш код не находится в контроллере (поэтому вы не можете использовать $this->getRequest()), вы можете запросите текущий контроллер, используя Controller::curr(), который сделает полный вызов для получения одной переменной:

Controller::curr()->getRequest()->getVar('a')

Если вы хотите получить все переменные "GET", просто вызовите вместо этого getVars()..

Кроме того, вы можете получить доступ к переменным «POST» в аналогичном вызове postVar('a') или вместо этого postVars(). Если вы хотите получить значение как из "POST", так и из "GET", вы можете вызвать requestVar('a') или requestVars().

Во всяком случае, вот базовый макет контроллера, использующий функцию контроллера, доступную в шаблоне.

Контроллер

class TestPage_Controller extends Page_Controller
{
    public function init()
    {
        parent::init();
    }

    public function MySpecialProperty()
    {
        return $this->getRequest()->getVar('a');
    }
}

Шаблон

<p> $MySpecialProperty </p>
person Turnerj    schedule 17.02.2015