小编arn*_*bey的帖子

使用Doctrine2请求JSON类型字段中的键/值

我试图弄清楚如何在symfony 3.4应用程序中检索(通过存储库方法,例如使用DQL请求)实体,具体取决于"json"类型列中特定键的值.看到postgre有一些东西,但我没有找到任何与mariaDB相关的东西

假设我收到一封实体

有这个属性:

/**
 *
 * @ORM\Column(type="json")
 */
private $metadatas;
Run Code Online (Sandbox Code Playgroud)

其中包含,例如:

 {
    "key1": "value",
    "key2": "value"
 }
Run Code Online (Sandbox Code Playgroud)

我怎么能,或者,是否可以请求我的数据库获取metadatas列中特定键的特定值的字母.

像这样的东西:

public function getByKeyValue($key, $value)
      {
          $em = $this->_em;
          $dql = "SELECT l FROM AppBundle:Letter l
                  WHERE l.metadatas->:key = :value
                  ";

          $query = $em->createQuery($dql);
          $query->setParameter('key', $key);
          $query->setParameter('value', $value);


          return $query->getResult();
      } 
Run Code Online (Sandbox Code Playgroud)

一些信息:

php7.1,mariadb 10.2+,doctrine/dbal ^ 2.6,doctrine orm ^ 2.5

非常感谢.

json doctrine dql mariadb symfony

2
推荐指数
1
解决办法
4484
查看次数

标签 统计

doctrine ×1

dql ×1

json ×1

mariadb ×1

symfony ×1