Php Symfony2-如何在findBy中搜索json_数组字段
假设我有一组数据联系人Php Symfony2-如何在findBy中搜索json_数组字段,php,json,symfony,doctrine-orm,Php,Json,Symfony,Doctrine Orm,假设我有一组数据联系人 $cont = array("123-123-123","sample@sample.com"); 我将其作为json\u数组type存储在symfony2原则字段中 $person->setContacts($cont); //Which automatically converts into json 现在我的问题是,在通过联系人搜索此人时 $cont['contacts'] = array("123-123-123","sample@sample.com"
$cont = array("123-123-123","sample@sample.com");
我将其作为json\u数组
type存储在symfony2原则字段中
$person->setContacts($cont); //Which automatically converts into json
现在我的问题是,在通过联系人搜索此人时
$cont['contacts'] = array("123-123-123","sample@sample.com");
or
$cont['contacts'] = json_encode(array("123-123-123","sample@sample.com"));
$person->findBy($cont);
没有产生正确的结果,是否有其他方法通过
json\u数组
字段检索数据,如果问题太简单,请原谅。通过json搜索-对SQL数据库来说是个坏主意。您可以创建另一个字段(电话和电子邮件)
绑定到PDO之前的所有值,在DBAL\Types中自动转换,并且必须将实际数据设置为参数(对象、数组等)
这是一个工作代码。您可以查看探查器以查看完整的SQL查询。若要对数据库执行搜索,则不应使用JSON存储在数据库中 您试图做的基本上是持久化一个值对象(您应该创建一个真正的联系人值对象,而不是使用数组) 然后您可以在这里找到几个持久化值对象的解决方案 第一个(自己映射)与ZUKV相同,即使保留数组也适用。如果使用PostgreSQL>9.3,可以使用json(或jsonb)数据类型
您可以在此处阅读文档()。您可以展示您的
setContacts
方法吗?它是由条令自动生成的,而我们创建实体序列化您需要查询的数据不是一个好的选择。为什么不创建一个单独的实体联系人
?或者使用中的值对象?这通常是不正确的。例如,postgres中有jsonb
。你可以高效地查询这个问题。
$cont['contacts'] = array("123-123-123","sample@sample.com");
$person->findBy($cont);