ansien/form-to-json-bundle

本包的最新版本(1.0.7)没有可用的许可证信息。

将 Symfony 表单转换为 JSON

安装: 32

依赖: 0

建议者: 0

安全性: 0

星星: 4

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.7 2021-03-17 19:12 UTC

This package is auto-updated.

Last update: 2024-09-18 02:56:20 UTC


README

Latest Version on Packagist Total Downloads GitHub

此包允许您将 Symfony 表单转换为 JSON。

安装

您可以通过 Composer 安装此包

composer require ansien/form-to-json-bundle

用法

控制器

<?php

declare(strict_types=1);

namespace App\Controller;

use Ansien\FormToJsonBundle\Transformer\Service\FormTransformerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Example;
use App\Form\ExampleType;

class ExampleController extends AbstractController
{
    public function __construct(private FormTransformerInterface $formTransformer) 
    {
    }

    #[Route('/example', methods: ['GET'])]
    public function __invoke(Request $request): JsonResponse
    {
        $example = new Example('Hello!');
        $form = $this->createForm(ExampleType::class, $example);
        
        return new JsonResponse($this->formTransformer->transform($form));
    }
}

示例输出

{
  "schema": {
    "id": "test",
    "name": "test",
    "type": "super_form",
    "disabled": false,
    "label": null,
    "label_format": null,
    "label_html": false,
    "multipart": true,
    "unique_block_prefix": "_test",
    "row_attr": [],
    "translation_domain": null,
    "label_translation_parameters": [],
    "attr_translation_parameters": [],
    "valid": true,
    "required": true,
    "size": null,
    "label_attr": [],
    "help": null,
    "help_attr": [],
    "help_html": false,
    "help_translation_parameters": [],
    "compound": true,
    "method": "POST",
    "action": "",
    "submitted": false,
    "attr": [],
    "children": {
      "text": {
        "id": "test_text",
        "name": "text",
        "type": "text",
        "disabled": false,
        "label": null,
        "label_format": null,
        "label_html": false,
        "multipart": false,
        "unique_block_prefix": "_test_text",
        "row_attr": [],
        "translation_domain": null,
        "label_translation_parameters": [],
        "attr_translation_parameters": [],
        "valid": true,
        "required": true,
        "size": null,
        "label_attr": [],
        "help": null,
        "help_attr": [],
        "help_html": false,
        "help_translation_parameters": [],
        "compound": false,
        "method": "POST",
        "action": "",
        "submitted": false,
        "attr": []
      }
    }
  },
  "values": {
    "text": "Test 123"
  },
  "errors": {
    "_global": [
      "Test root error"
    ],
    "text": [
      "Test error"
    ]
  }
}

扩展包

您可以通过创建一个扩展 AbstractTypeTransformer 的新服务并使用标签 form_to_json_bundle.type_transformer 来创建自己的表单类型转换器。

变更日志

请参阅变更日志以获取最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

支持者

Stargazers repo roster for @ansien/FormToJsonBundle

鸣谢

许可证

MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。