5

我有两个名为 calendar_colour 和 user 的表,

calendar_colour
(
   colour_id int primary key,
   colour varchar(15)
)


user
(
   id int primary key,
   name varchar(30),
   color int,
   foreign key(color) references calendar_colour(colour_id)
)

在用户的添加功能中,我必须从下拉框中选择一种颜色。但我想使用以前用户尚未采用的颜色填充下拉列表。我尝试使用 find 命令,但似乎是错误的。

$curColours = $this->EventType->query('select color from event_types');

$this->set('colours', $this->EventType->CalendarColour->find('list',array('conditions'=>array('NOT',array('CalendarColour.colour_id' => $curColours)))));

我使用数组$colours来填充下拉框。编写查找任何用户未使用的颜色的查找命令的正确方法是什么。

谢谢。

4

1 回答 1

13

你几乎拥有它:

$this->EventType->CalendarColour->find('list', array(
  'conditions' => array(
    'NOT' => array( // There's your problem! :)
      'CalendarColour.colour_id' => $curColours
    )
  )
));
于 2012-11-06T01:07:30.953 回答