首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Zend中的单个表单将数据插入两个表中

问题:使用 Zend 中的单个表单将数据插入两个表中。

答案

在 Zend 框架中,您可以使用单个表单将数据插入两个不同的表中。首先,需要确保您的表单具有两个不同的控制器(例如 firstControllersecondController)。然后,在相应的控制器中创建两个不同的视图(例如 firstViewsecondView),这些视图将负责处理各自的数据。

接下来,您需要创建一个用于将数据从第一个表单提交到第二个表单的中介视图。这可以通过在 application.config.php 文件中添加一个名为 intermediate_view 的路由实现。

代码语言:php
复制
return [
    // ...
    'router' => [
        'routes' => [
            'intermediate_view' => [
                'type' => 'Zend\Mvc\Router\Http\Segment',
                'options' => [
                    'route' => '/intermediate_view',
                    'defaults' => [
                        'controller' => 'Zend\Mvc\Controller\AbstractActionController',
                        'action' => 'intermediate_view',
                    ],
                ],
            ],
        ],
    ],
    // ...
];

然后,在中介视图中,您可以使用 $request 变量来获取来自第一个表单的提交数据,并将其作为参数传递给第二个表单的 add 方法。

在第二个表单的 add 方法中,您可以使用 $request 变量来获取来自中介视图的数据,并将其存储到数据库中。

代码语言:php
复制
// firstController
public function intermediateViewAction()
{
    $firstForm = new FirstForm();
    $secondForm = new SecondForm();

    if ($this->getRequest()->isPost()) {
        $firstData = $this->getRequest()->getPost('first_form');
        $secondData = $this->getRequest()->getPost('second_form');

        $secondForm->add($secondData);
    }

    return $this->render('first/intermediate_view.phtml', [
        'firstForm' => $firstForm,
        'secondForm' => $secondForm,
    ]);
}

在上面的示例中,我们首先创建了两个表单,然后通过中介视图将第一个表单的数据提交到第二个表单。在第二个表单的 add 方法中,我们使用 $request 变量来获取来自中介视图的数据,并将其存储到数据库中。

最后,在 application.config.php 文件中添加以下路由,以便可以通过 URL 直接访问中介视图。

代码语言:php
复制
'router' => [
    'routes' => [
        'first' => [
            'type' => 'Zend\Mvc\Router\Http\Segment',
            'options' => [
                'route' => '/first',
                'defaults' => [
                    'controller' => 'First\Controller\First',
                    'action' => 'index',
                ],
            ],
        ],
        'second' => [
            'type' => 'Zend\Mvc\Router\Http\Segment',
            'options' => [
                'route' => '/second',
                'defaults' => [
                    'controller' => 'Second\Controller\Second',
                    'action' => 'index',
                ],
            ],
        ],
    ],
],

现在,您可以通过 URL /first/intermediate_view 访问中介视图,将数据从第一个表单提交到第二个表单。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券