2012-11-06 10 views
5

「ではありません」私はcalendar_colourとユーザと呼ばれる2つのテーブル、私はドロップダウンボックスから色を選択する必要があり、ユーザーの追加機能でCakePHPは

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を使用してドロップダウンボックスに入力します。任意のユーザーが使用していない色を検出するfindコマンドを記述する正しい方法は何か。

ありがとうございました。

+0

私は、クエリのいずれかのタイプを記述するために、複数行を使用することをお勧めかもしれませんか?私が私の答えでしたように。それは単に理解しやすくなります:) – Ariaan

答えて

13

あなたはほとんどそれを持っていた:

$this->EventType->CalendarColour->find('list', array(
    'conditions' => array(
    'NOT' => array(// There's your problem! :) 
     'CalendarColour.colour_id' => $curColours 
    ) 
) 
)); 
+0

ある程度まで働いてくれてありがとう!しかし、ユーザーを追加した後、別の列を追加しようとすると、未知の列「Array」と表示されるというエラーが表示されます。 – user1563210