質問編集履歴

4

追記

2016/04/21 04:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -84,6 +84,12 @@
84
84
 
85
85
  'name' => string 'pussy2'
86
86
 
87
+ 2 =>
88
+
89
+ array (size=1)
90
+
91
+ 'name' => string 'pussy3'
92
+
87
93
 
88
94
 
89
95
  ```
@@ -118,6 +124,12 @@
118
124
 
119
125
  'name' => string 'asshole'
120
126
 
127
+ 1 =>
128
+
129
+ array
130
+
131
+ 'name' => string 'assholeshit'
132
+
121
133
 
122
134
 
123
135
  ```

3

追記

2016/04/21 04:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -142,6 +142,22 @@
142
142
 
143
143
  $this->Name->begin();
144
144
 
145
+
146
+
147
+
148
+
149
+ if(isset($this->data['Name']['id']) && !empty($this->data['Name']['id'])) {
150
+
151
+ $conditions = array('name_id' => $id);
152
+
153
+ $this->Name->Nickname->deleteAll($conditions, false);
154
+
155
+ }
156
+
157
+ //追記
158
+
159
+ //保存する前にNicknameにあるname_idで一回削除した上で保存すると保存されますが、作成日時と更新日時が 新規と同じようになってしまいます。
160
+
145
161
  if(!$this->Name->saveAll($this->request->data,array('deep' => true))){
146
162
 
147
163
  $this->Flash->error('変更できません。入力内容を確認してください。');

2

s

2016/04/21 01:49

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -184,6 +184,34 @@
184
184
 
185
185
  `modifier` INT(11) NOT NULL,
186
186
 
187
+ PRIMARY KEY (`id`),
188
+
189
+ UNIQUE INDEX `name_UNIQUE` (`name` ASC))
190
+
191
+ ENGINE = InnoDB
192
+
193
+ DEFAULT CHARACTER SET = utf8
194
+
195
+ COLLATE = utf8_general_ci;
196
+
197
+
198
+
199
+ CREATE TABLE IF NOT EXISTS `abata`.`nicknames` (
200
+
201
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
202
+
203
+ `nickname` VARCHAR(255) NOT NULL,
204
+
205
+ `name_id` INT(11) NULL,
206
+
207
+ `created` DATETIME NOT NULL,
208
+
209
+ `creator` INT(11) NOT NULL,
210
+
211
+ `modified` DATETIME NOT NULL,
212
+
213
+ `modifier` INT(11) NOT NULL,
214
+
187
215
  PRIMARY KEY (`id`))
188
216
 
189
217
  ENGINE = InnoDB
@@ -194,32 +222,6 @@
194
222
 
195
223
 
196
224
 
197
- CREATE TABLE IF NOT EXISTS `abata`.`nicknames` (
198
-
199
- `id` INT(11) NOT NULL AUTO_INCREMENT,
200
-
201
- `nickname` VARCHAR(255) NOT NULL,
202
-
203
- `name_id` INT(11) NULL,
204
-
205
- `created` DATETIME NOT NULL,
206
-
207
- `creator` INT(11) NOT NULL,
208
-
209
- `modified` DATETIME NOT NULL,
210
-
211
- `modifier` INT(11) NOT NULL,
212
-
213
- PRIMARY KEY (`id`))
214
-
215
- ENGINE = InnoDB
216
-
217
- DEFAULT CHARACTER SET = utf8
218
-
219
- COLLATE = utf8_general_ci;
220
-
221
-
222
-
223
225
  ```
224
226
 
225
227
 

1

テーブルCREATE

2016/04/20 07:40

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -166,6 +166,64 @@
166
166
 
167
167
 
168
168
 
169
+ テーブルCREATE
170
+
171
+ ```php
172
+
173
+ CREATE TABLE IF NOT EXISTS `abata`.`names` (
174
+
175
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
176
+
177
+ `name` VARCHAR(255) NOT NULL,
178
+
179
+ `created` DATETIME NOT NULL,
180
+
181
+ `creator` INT(11) NOT NULL,
182
+
183
+ `modified` DATETIME NOT NULL,
184
+
185
+ `modifier` INT(11) NOT NULL,
186
+
187
+ PRIMARY KEY (`id`))
188
+
189
+ ENGINE = InnoDB
190
+
191
+ DEFAULT CHARACTER SET = utf8
192
+
193
+ COLLATE = utf8_general_ci;
194
+
195
+
196
+
197
+ CREATE TABLE IF NOT EXISTS `abata`.`nicknames` (
198
+
199
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
200
+
201
+ `nickname` VARCHAR(255) NOT NULL,
202
+
203
+ `name_id` INT(11) NULL,
204
+
205
+ `created` DATETIME NOT NULL,
206
+
207
+ `creator` INT(11) NOT NULL,
208
+
209
+ `modified` DATETIME NOT NULL,
210
+
211
+ `modifier` INT(11) NOT NULL,
212
+
213
+ PRIMARY KEY (`id`))
214
+
215
+ ENGINE = InnoDB
216
+
217
+ DEFAULT CHARACTER SET = utf8
218
+
219
+ COLLATE = utf8_general_ci;
220
+
221
+
222
+
223
+ ```
224
+
225
+
226
+
169
227
  なぜか、saveAllするとnameは編集した通り保存されますが、
170
228
 
171
229
  Nicknameの方は保存されず、追加する場合だけ保存されます。