teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

追記

2016/04/21 04:06

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -41,6 +41,9 @@
41
41
  1 =>
42
42
  array (size=1)
43
43
  'name' => string 'pussy2'
44
+ 2 =>
45
+ array (size=1)
46
+ 'name' => string 'pussy3'
44
47
 
45
48
  ```
46
49
 
@@ -58,6 +61,9 @@
58
61
  0 =>
59
62
  array
60
63
  'name' => string 'asshole'
64
+ 1 =>
65
+ array
66
+ 'name' => string 'assholeshit'
61
67
 
62
68
  ```
63
69
 

3

追記

2016/04/21 04:06

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -70,6 +70,14 @@
70
70
  $this->Name->create();
71
71
  $this->request->data['Name']['id'] = $id;
72
72
  $this->Name->begin();
73
+
74
+
75
+ if(isset($this->data['Name']['id']) && !empty($this->data['Name']['id'])) {
76
+ $conditions = array('name_id' => $id);
77
+ $this->Name->Nickname->deleteAll($conditions, false);
78
+ }
79
+ //追記
80
+ //保存する前にNicknameにあるname_idで一回削除した上で保存すると保存されますが、作成日時と更新日時が 新規と同じようになってしまいます。
73
81
  if(!$this->Name->saveAll($this->request->data,array('deep' => true))){
74
82
  $this->Flash->error('変更できません。入力内容を確認してください。');
75
83
  }

2

s

2016/04/21 01:49

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -91,7 +91,8 @@
91
91
  `creator` INT(11) NOT NULL,
92
92
  `modified` DATETIME NOT NULL,
93
93
  `modifier` INT(11) NOT NULL,
94
- PRIMARY KEY (`id`))
94
+ PRIMARY KEY (`id`),
95
+ UNIQUE INDEX `name_UNIQUE` (`name` ASC))
95
96
  ENGINE = InnoDB
96
97
  DEFAULT CHARACTER SET = utf8
97
98
  COLLATE = utf8_general_ci;

1

テーブルCREATE

2016/04/20 07:40

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -82,6 +82,35 @@
82
82
  }
83
83
  ```
84
84
 
85
+ テーブルCREATE
86
+ ```php
87
+ CREATE TABLE IF NOT EXISTS `abata`.`names` (
88
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
89
+ `name` VARCHAR(255) NOT NULL,
90
+ `created` DATETIME NOT NULL,
91
+ `creator` INT(11) NOT NULL,
92
+ `modified` DATETIME NOT NULL,
93
+ `modifier` INT(11) NOT NULL,
94
+ PRIMARY KEY (`id`))
95
+ ENGINE = InnoDB
96
+ DEFAULT CHARACTER SET = utf8
97
+ COLLATE = utf8_general_ci;
98
+
99
+ CREATE TABLE IF NOT EXISTS `abata`.`nicknames` (
100
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
101
+ `nickname` VARCHAR(255) NOT NULL,
102
+ `name_id` INT(11) NULL,
103
+ `created` DATETIME NOT NULL,
104
+ `creator` INT(11) NOT NULL,
105
+ `modified` DATETIME NOT NULL,
106
+ `modifier` INT(11) NOT NULL,
107
+ PRIMARY KEY (`id`))
108
+ ENGINE = InnoDB
109
+ DEFAULT CHARACTER SET = utf8
110
+ COLLATE = utf8_general_ci;
111
+
112
+ ```
113
+
85
114
  なぜか、saveAllするとnameは編集した通り保存されますが、
86
115
  Nicknameの方は保存されず、追加する場合だけ保存されます。
87
116
  階層の深さのせいと思い オプションにarray('deep' => true)を追加してみましたが、