Двоичный ИЛИ не работает в Symfony Propel Criteria - PullRequest
2 голосов
/ 02 июня 2011

Я использую 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);

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

1 Ответ

3 голосов
/ 06 июня 2011

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

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