Как получить доступ к параметрам из URL в CakePHP 3

В кулинарной книге CakePHP 3. Это дано для создания URL с помощью

echo $this->Url->build([
    "controller" => "Posts",
    "action" => "view",
    "foo" => "bar"
]);

который будет выводить как

/posts/view/foo:bar

Как получить доступ к foo:bar в действии и сохранить в переменной $foo?

3 ответа

Решение

В кулинарной книге есть ошибка, поэтому я открыл этот билет

если вы используете этот код

echo $this->Url->build([
    "controller" => "Posts",
    "action" => "view",
    "foo" => "bar"
]);

вы получите URL, как это

/posts/view/?foo=bar

руководство объясняет, как получить доступ к параметрам GET

ты можешь сделать

$this->request->query('foo');

или же

 $this->request->query['foo'];

первый является нулевым, это означает, что если foo параметр не установлен, вы просто получите null и не ошибка

редактировать

после 3.4.0 новый синтаксис

$this->request->getQuery('foo');

Версия CakePHP 3.* может использовать request Query :

      $this->request->getQuery('utm_source')

Или в одной строке, чтобы получить все параметры в виде массива:

$params = $this->request->getQueryParams();
Другие вопросы по тегам