我正在使用Symfony 1.4和Propel(ORM),我想执行SQL查询(SELECT * FROM 'myblog'
WHERE 'blog_title' LIKE '%symfony%'
OR 'blog_post' LIKE '%symfony%'
)
想要从myblog获取包含单词symfony的所有记录。
我把Symfony代码编写为,
$c = new Criteria();
$c->add(MyblogPeer::BLOG_TITLE, "%symfony%", Criteria::LIKE);
$c->addOr(MyblogPeer::BLOG_POST, "%symfony%", Criteria::LIKE);
$my_blog = MyblogPeer::doSelect($c);
但它返回一个空集。给出参数有什么不对吗?
答案 0 :(得分:3)
我认为为了在where闭包中创建OR,你需要创建一个Criterion,然后将该标准添加到查询中,它应该是这样的:
$c = new Criteria();
$criterion = $c->getNewCriterion(MyblogPeer::BLOG_TITLE, "%symfony%", Criteria::LIKE);
$criterion->addOr($c->getNewCriterion(MyblogPeer::BLOG_POST, "%symfony%", Criteria::LIKE));
$c->add($criterion);
$my_blog = MyblogPeer::doSelect($c);