Как передать параметр из URL в форму, созданную администратором? - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть две модели, а именно: «Клиент» и «Питомец», в которых есть модули, сгенерированные администратором.Существует взаимосвязь «один ко многим», поэтому я хочу иметь возможность создать нового питомца, используя cid (идентификатор клиента), указанный в URL (т. Е. / Pet / new / cid / 6)

Iуже отключил поле cid в форме клиента, так что параметр из URL будет передан в качестве значения по умолчанию.

Я попытался переопределить actions.class.php модуля, сгенерированного администратором, с помощью этого кода:

public function executeCreate(sfWebRequest $request)
{
    $this->form = $this->configuration->getForm();
    $params = $request->getParameter($this->form->getName());
    $params["cid"] = $request->getParameter('cid');
    $request->setParameter($this->form->getName(), $params);

    parent::executeCreate($request);
}

Это работает, если я заменил

$request->getParameter('cid');

жестко запрограммированным значением int, поэтому я думаю, что проблема в том, что я не могу получить параметр из URL.

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

1 Ответ

0 голосов
/ 03 мая 2011

Вы можете просто передать параметр cid в URL следующим образом:
/ pet / new? Cid = 6

и получить результат в вашем действии с помощью:
$ request-> getParameter( 'CID');

Первая часть маршрутизации (/ pet / new) представляет собой определенную доктрину RoteCollection

...