Doctrine可以自动序列化简单的PHP数组值(请参见https://doctrine-orm.readthedocs.io/projects/doctrine-dbal/en/latest/reference/types.html#array-types)。
示例
<?php
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="my_table")
*/
class MyTable {
/**
* @var array
*
* @ORM\Column(name="myArray", type="json", nullable=true)
*/
private $myArray;
}
数据库中的示例
| my_array |
|---------------|
|'["FOO","BAR"]'|
问题
是否可以通过DQL或使用查询生成器直接查询这些值而无需某种难看的正则表达式?
$queryBuilder
->andWhere(":searchParam IN myTable.myArray")
->setParameter('searchParam', 'FOO');
旁注:我总是可以包装searchParam
并使用LIKE
关键字进行搜索。但是,我正在寻找替代解决方案。