Php 使用Symfony 2在SQL数据库中保存数组,原则?

Php 使用Symfony 2在SQL数据库中保存数组,原则?,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我正在做一个应用程序,我使用SQL,我想在一列中保存复选框值。 我是这样做的: /** * @Assert\NotBlank( * message="please select!") * @Assert\NotNull( * message="please select!") * @Assert\Range(min=0, max=9) * @ORM\Column(type="integer") */ protected $ingredients;

我正在做一个应用程序,我使用SQL,我想在一列中保存复选框值。 我是这样做的:

 /**
* @Assert\NotBlank(
*           message="please select!")
* @Assert\NotNull(
*           message="please select!")
* @Assert\Range(min=0, max=9)
* @ORM\Column(type="integer")
*/  
protected $ingredients;


public static function getIngredientsOptions(){
return array('cheese','tomatoes','salami','onions','mushroom','bacon','ham','vegetables','peppers','olives');

    }

但我得到的错误表明我有选择错误,我认为问题在于复选框。这是正确的吗?你能帮我怎么做这个吗

可以将列类型更改为数组,如下所示:

@ORM\Column(name="ingredients", type="array", nullable=true)
这将导致一个带有注释DC2Type:array的长文本字段,以便条令知道如何处理它。它将存储一个序列化数组


这可能是你想要的。如果没有,请在使用表单的地方发布更多设置器和控制器的代码以及错误消息。

我更改了它,但出现错误-->>执行“选择t0.id作为id\u 1,t0.name作为name\u 2,t0.address作为address\u 3,t0.phone作为phone\u 4,t0.email作为email\u 5,t0.box作为box\u 6”时发生异常,t0.Components AS Components_7,t0.delivery AS delivery_8从订单t0':SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在第1行“order t0”附近使用的正确语法order是SQL中的保留关键字,因此如果需要名为“order”的表,则需要将其转义:/**@Columnname=order,type=…您为我节省了很多时间。谢谢你,还有+1。我已经创建了一个数组类型字段,如你所示。现在我想调查一下他。我想在数组{I:0;s:4:3410;I:1;s:4:3415;I:2;s:4:3459;I:3;s:4:3460;I:4;s:4:3492;}中搜索类似于3492的id?