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

質問編集履歴

1

markdwonの修正(内容の変化はなし)

2018/05/09 07:26

投稿

yukkenoottuna
yukkenoottuna

スコア51

title CHANGED
File without changes
body CHANGED
@@ -1,15 +1,16 @@
1
1
  CakePHP3.2を使用しているのですが、Cake\ORM\Table::delete`によるデータの削除時に孫データまで削除することは可能でしょうか。
2
2
 
3
3
  具体的には、下記のような設定と処理の際に、Usersの子データPostsと孫データとなるComments(Postsの子)を自動削除をしたいです。
4
- - 設定
4
+ 設定
5
- - `UsersTable`から`hasMany`で`Posts`モデルにアソシエーション設定
5
+ - `UsersTable`から`hasMany`で`Posts`モデルにアソシエーション設定
6
- - `PostsTable`から`hasMany`で`Comments`モデルにアソシエーション設定
6
+ - `PostsTable`から`hasMany`で`Comments`モデルにアソシエーション設定
7
- - `UsersTable`→`Posts`、`PostsTable`→`Comments`のアソシエーション共に`'dependent'=> true,`を設定。
7
+ - `UsersTable`→`Posts`、`PostsTable`→`Comments`のアソシエーション共に`'dependent'=> true,`を設定。
8
- - 削除処理
9
- - 任意のUsersのデータについて`$this->Users->delete($user)`
10
8
 
9
+ 削除処理
10
+ - 任意のUsersのデータについて`$this->Users->delete($user)`
11
+
11
12
  現状では、`Users`とそれに紐づく`Posts`のデータは削除されるが、`Comments`のデータまでは削除されない。
12
13
  つまり、子データは削除されるが、孫データまでは削除されない状態です。
13
14
 
14
- 孫データまで自動で削除する設定方法はありますでしょうか。
15
+ アソシエーションの設定のみで、孫データまで自動で削除する方法はありますでしょうか。
15
16
  ご存知でしたらご教示のほどよろしくお願いいたします。