1

我的任务模型中有一个 many_many 关系

 'keywordlist' => array(self::MANY_MANY, 'Keyword', 'task_keyword(id_task, id_keyword)'),

好吧,我得到了所有这些任务的清单

$criteria = new CDbCriteria();
    $criteria->condition = "t.blocked = 0 AND t.answered = 0 AND t.date_deadline > NOW()";
    $criteria->order = 't.id desc';

好的,现在一个任务可以有一个或 * 关键字。如果我在我的任务上放置一个过滤器

$criteria->addCondition('keywordlist.name like \'%html%\'','AND');

我收到了想要的任务,但只有 html 关键字。该任务还有更多其他关键字不会出现。如何从keywordlist.name 列创建类似in_array 的内容。如果关键字在结果中,则将所有关键字返回给我的任务?

如果我使用例如 %p% 作为关键字搜索,它会显示更多关键字,如果关键字由带有“p”的内容组成。但也不会显示其他关键字。

4

1 回答 1

0

如果我理解正确addInCondition()就是你要找的

$criteria->addInCondition('keywordlist.name',array('html','add','other','keywords','here'));
于 2012-07-04T08:26:16.383 回答