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';

OK、タスクには 1 つまたは * のキーワードを含めることができます。でタスクにフィルターをかけた場合

$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 に答える