如何在学说 2 中创建对象属性的查询构建器

Posted

技术标签:

【中文标题】如何在学说 2 中创建对象属性的查询构建器【英文标题】:How to create a query builder on object property in doctrine 2 【发布时间】:2014-03-24 21:21:26 【问题描述】:

可以在学说 2 上为列类型 => 对象创建查询吗?

领域问题:

查询生成器 DQL

例子

/**
 *
 * Capacity Object Details
 * wgross = weight of item, wnet = neto weight
 * 
 * @ORM\Column(type="object")
 */
private $capacity;

时间:

$capacity = array('wgross' => 19, 'wnet' => 9);

使用伪 where 的可能查询:

$em->createQuery('SELECT i FROM Entity\Item i WHERE i.capacity.wnet < 18');

Doctrine 序列化对象类型,我在网上搜索可能的解决方案:

Doctrine 查询生成器表达式 正则表达式

RDMS 上的列类型是 longtext,而不是 clob 或 blob,值是这样的。

O:8:"stdClass":5:s:4:"wgross";s:0:"19";s:6:"wnet";s:0:"9";

但什么也没找到。

【问题讨论】:

为什么不将$capacity 字段转换为实体? 因为对象 $capacity 可能会改变或改变属性,仅供参考,不涉及关系。 【参考方案1】:

找到一个可能的解决方案,但不是最佳解决方案是使用类似的 expr:

 $qb->add($qb->expr()->like("i.capacity", $qb->expr()->literal("%text_to_search%")));

在使用 Doctrine Criteria 进行记忆工作之后。

【讨论】:

以上是关于如何在学说 2 中创建对象属性的查询构建器的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在 ADAM 中创建重复对象?

如何在 Microsoft Access 数据库中创建查询对象? [复制]

如何在 Haxe 中创建动作脚本对象

在 Typescript 中创建对象并添加值无法设置未定义的属性“X”

Winforms:在设计器中创建对象并对其进行自定义

通过其他类构造函数在主方法中创建对象时访问对象属性