gpt4 book ai didi

php - 交响乐 2 : Save json and display value

转载 作者:行者123 更新时间:2023-12-02 04:36:49 24 4
gpt4 key购买 nike

我实际上正在使用 Symfony2 开发一个个人项目。我想做点什么,但我不知道该怎么做。我有一个实体 Recette 并且在这个实体中我有一个属性 ingredients此成分属性是 json_array 类型。

<?php

namespace sf2\RecetteBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* Recette
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="sf2\RecetteBundle\Entity\RecetteRepository")
*/
class Recette
{
// ...

/**
* @var array
*
* @ORM\Column(name="ingredients", type="json_array")
*/
private $ingredients;

// ...
}

?>

在这个 json_array 中,我只想保存一些信息。例如:

["name":"potatoes","quantity":"5kg"]

在这里你可以找到我的 Entity FormType :

class RecetteType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name','text',array('label' => "test","attr"=>array('class'=>'test')))
->add('completionTime')
->add('ingredients',
'collection',
array(
'type'=>'text',
'prototype'=>true,
'allow_add'=>true,
'allow_delete'=>true,
'options'=>array(
)
)
)
->add('preparation')
->add('recetteCategories')
->add('Ok','submit')
;
}
}

在我的表单中,我可以使用 jquery 添加任何问题添加成分,但我的问题是我无法保存数量信息。我不知道如何在我的表格中显示两个字段而不是一个用于成分。

目前,当我保存一种成分时,我在数据库中有这些数据:

["Potatoes"]

如何在我的表单中显示成分的两个字段以及如何以这种格式保存它?

["name":"potatoes","quantity":"5kg"]

谢谢。

最佳答案

这是文档 How to Embed a Collection of Forms 中的示例

首先你必须创建一个Custom Form Field Type命名成分类型:

成分类型

namespace Acme\RecetteBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class IngredientType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('quantity')
;
}

public function getName()
{
return 'ingredient';
}
}

services.yml

# src/Acme/RecetteBundle/Resources/config/services.yml
services:
acme_demo.form.type.ingredient:
class: Acme\RecetteBundle\Form\Type\IngredientType
tags:
- { name: form.type, alias: ingredient }

并更改The field type在您的集合中添加成分类型。

RecetteType

         ->add('ingredients',
'collection',
array(
'type'=>'ingredient',
'prototype'=>true,
'allow_add'=>true,
'allow_delete'=>true,
'options'=>array(
)
)
)

关于php - 交响乐 2 : Save json and display value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21803108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com