1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
// model branche:
class Branche extends AppModel {
 
    var $name = 'Branche';
    var $useTable = 'branche';
    var $hasAndBelongsToMany = array(
            'Cat' => array(
                'className' => 'Cat',
                'joinTable' => 'branche_cat',
                'foreignKey'=> 'brancheid',
                'associationForeignKey' => 'catid',
                'conditions'=> array('Cat.status'=>2),
                'fields'    => '',
                'order'     => '',
                'limit'     => '',
                'uniq'      => true,
            ),    
    );
    var $hasMany = array(
            'Rss' => array(
                'classname' => 'Rss',
                'foreignKey'=> 'brancheid',
                'dependent' => false,
                'conditions'=> array('Rss.status'=>2),
                'fields'    => 'url',
                'order'     => '',
                'limit'     => '',
            )
    );
}
 
// model Cat
class Cat extends AppModel {
 
    var $name = 'Cat';
    var $useTable = 'cat';
    // lang relation is used in containable behaviour
    var $hasMany = array(
        'CatName' => array(
            'className' => 'CatName',
            'foreignKey'=> 'catid',
            'dependent' => false,
            'conditions'=> '',
            'order'     => 'lang DESC',
            'limit'     => '',
        )
    );
    var $hasAndBelongsToMany = array(
        'Item' => array(
            'className'             => 'Item',
            'joinTable'             => 'cat_item',
            'foreignKey'            => 'catid',
            'associationForeignKey' => 'itemid',
            'conditions'            => array('Item.status'=>array(1,2,3)),
            'fields'                => '',
            'order'                 => '',
            'limit'                 => '',
            'uniq'                  => true,
        ),
        'Branche' => array(
            'className'             => 'Branche',
            'joinTable'             => 'branche_cat',
            'foreignKey'            => 'catid',
            'associationForeignKey' => 'brancheid',
            'conditions'            => array('status'=>2),
            'fields'                => '',
            'order'                 => '',
            'limit'                 => '',
            'uniq'                  => true,
        )
    );
}
 
// form when I edit 1 Branche:
        echo $form->input('id');
        echo $form->input('status', array('type'=>'select','options'=>$stati));
        echo $form->input('name');
        echo $form->input('path');
        echo $form->input('Cat', array('label'=>'Categories','type'=>'select','multiple'=>true, 'options'=>$catlist));
 
 
// data array:
(
    [Branche] => Array
        (
            [id] => 5
            [status] => 0
            [name] => test
            [path] => test
        )
 
    [Cat] => Array
        (
            [Cat] => Array
                (
                    [0] => 289
                    [1] => 59
                    [2] => 60
                )
 
        )
 
)
 
// SQL:
18 
 
SELECT COUNT(*) AS `count`
FROM `branche` AS `Branche`  
WHERE `Branche`.`id` = 5    -- markt/controllers/branches_controller.php - 89 , [Model] Branche->save
 
        1   1   0
19 
 
UPDATE `branche`
SET `id` = 5, `status` = 0, `name` = 'test', `path` = 'test', `modified` = '2008-10-06 08:15:36'
WHERE `branche`.`id` = 5 -- markt/controllers/branches_controller.php - 89 , [Model] Branche->save
 
        1       1
20 
 
SELECT `BrancheCat`.`catid`
FROM `branche_cat` AS `BrancheCat`  
WHERE `BrancheCat`.`brancheid` = 5    -- markt/controllers/branches_controller.php - 89 , [Model] Branche->save
 
        3   3   0
21 
 
DELETE `BrancheCat`
FROM `branche_cat` AS `BrancheCat`  
WHERE `BrancheCat`.`catid` IN (59, 60, 289) -- markt/controllers/branches_controller.php - 89 , [Model] Branche->save
 
        3       1
22 
 
INSERT
INTO `branche_cat` (`brancheid`,`catid`)
VALUES (5,'289'), (5,'59'), (5,'60') -- markt/controllers/branches_controller.php - 89 , [Model] Branche->save