如何将参数从URL传递到管理员生成的表单?

时间:2011-04-29 08:17:25

标签: php symfony1 symfony-1.4

我有两个模型,即'Client'和'Pet',每个模型都有管理员生成的模块。涉及一对多关系,所以我希望能够使用URL中指定的cid(客户端ID)创建新的Pet(即/ pet / new / cid / 6)

我已经在客户端表单中禁用了cid字段,以便将URL中的参数作为默认值传递。

我尝试使用以下代码覆盖admin生成模块的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 :(得分:0)

你可以简单地在网址中传递参数cid,如下所示:
/ PET /新?CID = 6

并在以下操作中获得结果:
$请求 - >的getParameter( 'CID');

路由的第一部分(/ pet / new)是一个特定的doctrineRouteCollection