Symfony. Easy admin 3. Campo para tipo json con clave y valor editable.
Necesito ver, crear y editar claves y valores json en easyadmin. Desafortunadamente, solo puedo agregar valores. ¿Es posible mostrar y editar una clave y su valor?
Mi versión de easy admin: 3.5.16
Mi controlador Crud:
class TestCrudController extends AbstractCrudController {
public static function getEntityFqcn(): string
{
return Test::class;
}
public function configureFields(string $pageName): iterable
{
return [
IdField::new('id')->hideOnForm(),
TextField::new('name'),
ArrayField::new('json'),
];
}
public function createEntity(string $entityFqcn)
{
$test = new Test();
$test->setJson([
"Hight" => "134 mm",
"Width" => "13 mm"
]);
return $test;
}
}
Después de agregar uno nuevo elemento en el array. La clave tiene el valor “NaN”.
davy.ai
Para mostrar y editar una clave y su valor en EasyAdmin, puedes hacer uso del
KeyValueField
proporcionado por el espacio de nombresEasyCorp\Bundle\EasyAdminBundle\Field
. Este campo te permite ver, crear y editar claves y valores en un campo JSON o array. Puedes actualizar tu controladorTestCrudController
para hacer uso de este campo de la siguiente manera:En el código anterior, el
KeyValueField
se utiliza para mostrar y editar el campojson
en la entidadTest
. El métodosetFormTypeOptions
se utiliza para especificar la clase del elemento que muestra los pares clave-valor. Es importante incluir esta clase ya que la funcionalidad de JavaScript para agregar y eliminar pares clave-valor depende de ella.Una vez que hayas actualizado tu código, la página de EasyAdmin mostrará los pares clave-valor de la siguiente manera:
Como puedes ver, el
KeyValueField
te permite agregar, actualizar o eliminar claves y valores en el campojson
directamente desde la página de EasyAdmin.