4

我在 zf2 CMS 应用程序中有一个表单,其中包含一个由服务填充的标准选择列表和一个也由服务填充的定制表单元素,该表单是使用 Module.php 中的工厂调用设置的:

public function getServiceConfig()
{
    return array(
            'factories' => array(
                'ElmContent\Form\WebpageForm' => function ($sm) {
                    $service1 = $sm->get('parentPagesService');
                    $service2 = $sm->get('categoryService');
                    $form    = new Form\WebpageForm;
                    $form->setService($service1, $service2);

                    return $form;
                },

categoryService 用于填充我的定制表单元素(来自另一个表的类别列表) - 如果我在我的 CMS 中编辑页面,那么当我构建类别列表时,我想引用另一个表并查看哪些已关联,为此我需要从 url 传入页面 id,例如:

http://cms.local/pages/edit/100其中 100 是页面 id,然后可以传递给 categoryService:

$this->getCategoryAssociationsTable()->findByPageId(100);

如果需要,可以提供更多代码,但本质上,2 个表单元素由 db 表中的数据填充,因此我使用工厂调用进行设置,第二个元素是定制格式的复选框列表,如果它们在编辑时设置为选中状态之前被选中。为此,我需要从 url 传递 pageId,但是在按照我的方式设置表单时看不到在哪里执行此操作。提前致谢。

4

1 回答 1

1

从控制器传递它 $form = $sm->get('my-form'); $form->setRequest($this->getRequest()); 我想 Request 对象将包含您需要的所有信息?– 山姆 1 月 20 日 18:39

于 2013-09-26T07:19:50.353 回答