我试图弄清楚如何在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
非常感谢.