cakephp и получать запросы - PullRequest
       17

cakephp и получать запросы

1 голос
/ 27 апреля 2009

Как CakePHP обрабатывает запрос на получение? Например, как бы он обработал такой запрос ... http://us.mc01g.mail.yahoo.com/mc/welcome?.gx=1&.rand=9553121_pg=showFolder&fid=Inbox&order=down&tt=1732&pSize=20&.rand=425311406&.jsrand=3

Будет ли "mc" контроллером, а "welcome" - действием? Как обрабатывается остальная информация?

Ответы [ 5 ]

6 голосов
/ 27 апреля 2009

Также обратите внимание, что вы можете использовать именованные параметры начиная с Cake 1.2. Именованные параметры находятся в порядке «ключ: значение», поэтому URL http://somesite.com/controller/action/key1:value1/key2:value2 будет содержать массив $ this-> params ['named'] ('key1' => 'value1', 'key2' => 'value2' ) из любого контроллера.

Если вы используете GET-запрос в стиле CNN.com (http://www.cnn.com/2009/SHOWBIZ/books/04/27/ayn.rand.atlas.shrugged/index.html),, параметры отображаются в порядке появления (2009, SHOWBIZ, книги и т. Д.) В массиве $ this-> params ['pass'] индексируется начиная с 0.

Я настоятельно рекомендую именованные параметры, так как позже вы можете добавлять функции, передавая get params, не беспокоясь о порядке. Я полагаю, что вы также можете изменить ключ разделения именованных параметров (по умолчанию это ':').

Таким образом, это немного другая парадигма, чем «традиционные» параметры GET (page.php? Key1 = value1 & key2 = value2). Однако вы можете легко добавить некоторую логику в приложение, чтобы автоматически анализировать традиционные параметры в массиве, связавшись с тем, как приложение анализирует запросы.

2 голосов
/ 27 апреля 2009

CakePHP использует маршруты для определения этого. По умолчанию маршруты работают так, как вы описали. Остаток после '?' является строкой запроса, и ее можно найти в $this->params['url'] в контроллере, разобранном в ассоциативный массив.

1 голос
/ 03 сентября 2010

Так как я нашел это во время поиска, хотя он немного стар.

$this->params['url']

содержит информацию GET.

Я проверил, но это работает. Страница в книге Cakephp для этого эта ссылка в разделе 'url' . Это даже приводит пример, очень похожий на тот, что приведен здесь в оригинальном вопросе. Это также работает в CakePHP 1.3, который я использую.

0 голосов
/ 02 августа 2009

Может кто-нибудь уточнить правильный ответ? Мне кажется, что заявления Спулсона и Шона Дауна противоречат друг другу?

Может ли кто-нибудь использовать новейшую версию CakePHP и заставить работать следующий URL:

http://www.domain.com/index.php/oauth/authorize?oauth_version=1.0&oauth_nonce=c255c8fdd41bd3096e0c3bf0172b7b5a&oauth_timestamp=1249169700&oauth_consumer_key=8a001709e6552888230f88013f23d5d004a7445d0&oauth_signature_method=HMAC-SHA1&oauth_signature=0bj5O1M67vCuvpbkXsh7CqMOzD0%3D

oa являющийся контроллером и авторизующийся как метод КАК ХОРОШО, поскольку он в состоянии принять запрос GET в конце?

0 голосов
/ 28 апреля 2009

На самом деле он не использует тип get с тех пор.

если бы пропустили эту длинную безумную нить, ничего бы не случилось. Ожидаются данные в этом формате: site.com/controller/action/var1/var2/var....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...