Forms Shopware 6表格

Forms Shopware 6表格,forms,entity,shopware,storefront,Forms,Entity,Shopware,Storefront,新手问题。如何处理Shopware 6中的店面表单提交?如何将表单中的数据保存到数据库中?我有一个实体,店面上显示的表单和一个控制器,但我不知道如何将数据保存到实体。提前感谢。您必须更具体地描述您想要实现的目标 但一般来说,如果您已经有一个控制器接收数据,那么您可以从请求中获取数据,如下所示: $data = $request->request->all(); class MyClass { protected $myEntityRepository; publ

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

您必须更具体地描述您想要实现的目标

但一般来说,如果您已经有一个控制器接收数据,那么您可以从请求中获取数据,如下所示:

$data = $request->request->all();
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);

    }

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

应该是这样的:

$data = $request->request->all();
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中写了一篇关于存储库的文章,所以如果您想获得更多信息和示例,可以在这里查看: