Двоичный ИЛИ не работающий в критериях продвижения Symfony

#sql #symfony-1.4 #propel

#sql #symfony-1.4 #продвигать

Вопрос:

Я использую Symfony 1.4 и Propel (ORM), я хочу выполнить SQL-запрос ( SELECT * FROM 'myblog'
WHERE 'blog_title' LIKE '%symfony%'
OR 'blog_post' LIKE '%symfony%'
), хочу получить все записи из моего блога, которые содержат слово 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);
  

но он возвращает пустой набор. Есть ли что-то неправильное в предоставлении параметра.

Ответ №1:

Я думаю, что для создания OR в замыкании where вам нужно создать критерий, а затем добавить этот критерий в запрос, это должно быть что-то вроде этого:

 $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);