【发布时间】:2014-12-28 23:36:14
【问题描述】:
我需要一些帮助才能执行下一个查询。我搜索了 Propel ORM 文档,但没有找到与执行 WHERE LIKE 查询相关的任何内容,并使用“*”找到多个结果:
->where('Player.Name LIKE ?*', $filter)
->find();
有没有办法使用 Active Query 进行此查询?
【问题讨论】:
我需要一些帮助才能执行下一个查询。我搜索了 Propel ORM 文档,但没有找到与执行 WHERE LIKE 查询相关的任何内容,并使用“*”找到多个结果:
->where('Player.Name LIKE ?*', $filter)
->find();
有没有办法使用 Active Query 进行此查询?
【问题讨论】:
Propel 是建立在 PDO 之上的,因此即使直接使用 PDO,上述内容仍然无效。所以你不使用?与其他字符,而不是将它们连接到变量中,在您的情况下,$filter 应该包含您的通配符(即 % 不是 *)。
所以你先把它添加到$filter,
例如
$filter = '%' . $filter . '%';
那么正确的语法应该是:
->where('Player.Name LIKE ?', $filter)
或即时执行:
->where('Player.Name LIKE ?', '%' . $filter . '%')
【讨论】: