0
我有一個看起來像這樣的數據表:如何編輯Easy Admin Bundle中的字段中的json數據?
,我在一些用戶友好的形式想編輯JSON數據,而不是像這樣:
這是可能做到這一點很快,只是爲了改變一些參數?
我有一個看起來像這樣的數據表:如何編輯Easy Admin Bundle中的字段中的json數據?
,我在一些用戶友好的形式想編輯JSON數據,而不是像這樣:
這是可能做到這一點很快,只是爲了改變一些參數?
如果編輯漂亮打印的JSON足以滿足您的需求,那麼創建自定義表單域和數據轉換器,將JSON格式化爲漂亮的模板視圖打印表單,並在提交表單時返回緊湊的JSON。下面示出的解決方案是基於的Symfony 4.
JSON表單字段類型的目錄結構和系統:
<?php
namespace App\Form\Type;
use App\Form\DataTransformer\JsonToPrettyJsonTransformer;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
class JsonType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
$builder->addViewTransformer(new JsonToPrettyJsonTransformer());
}
public function getParent()
{
return TextareaType::class;
}
}
數據變壓器:
<?php
namespace App\Form\DataTransformer;
use Symfony\Component\Form\DataTransformerInterface;
class JsonToPrettyJsonTransformer implements DataTransformerInterface
{
public function transform($value)
{
return json_encode(json_decode($value), JSON_PRETTY_PRINT);
}
public function reverseTransform($value)
{
return json_encode(json_decode($value));
}
}
易於管理配置:
easy_admin:
entities:
EntityName:
class: App\Entity\EntityName
form:
fields:
# other fields
- { property: 'propertyName', type: 'App\Form\Type\JsonType' }
更復雜的編輯器可以以相同的方式創建,但可能重寫widget模板和自定義樣式加上javascripts。