Shopware 6 表格

问题描述

新手问题。如何在 Shopware 6 中处理店面表单提交?如何将数据从表单保存到数据库我有一个实体、店面中显示的表单和一个控制器,但我不知道如何将数据保存到实体。提前致谢。

解决方法

您必须更具体地描述您想要达到的目标。

但一般来说,如果您已经有一个接收数据的控制器,那么您可以像这样从请求中获取它们:

$data = $request->request->all();

这样,您将表单中的所有值都保存在数组 $data 中。您已经写过,您已经拥有一个实体,因此我假设您的实体已经映射到您的数据库表。所以你唯一要做的就是使用存储库来保存数据。对于thta,您只需要将其注入您的类并获取上下文。上下文取决于您当前所在的位置,因此出于示例目的,我刚刚创建了默认上下文。

它应该是这样的:

class MyClass
{

    protected $myEntityRepository;

    public function __construct(
        MyEntityRepository $myEntityRepository
    )
    {
        $this->myEntityRepository = $myEntityRepository;

        $this->context = \Shopware\Core\Framework\Context::createDefaultContext();
    }

    public function myMethod ($data)
    {

        $this->myEntityRepository->upsert($data,$this->context);

    }

}

希望这会有所帮助。我实际上写了一篇关于 Shopware 6 中的存储库的文章,因此如果您想获得更多信息和示例,可以在此处查看:https://shopwarian.com/repositories-in-shopware-6/