【问题标题】:How to create a query builder on object property in doctrine 2如何在学说 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 可能会改变或改变属性,仅供参考,不涉及关系。

标签: php orm doctrine-orm dql query-builder


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    相关资源
    最近更新 更多