質問編集履歴
1
markdwonの修正(内容の変化はなし)
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
|
-
|
5
|
+
- `UsersTable`から`hasMany`で`Posts`モデルにアソシエーション設定
|
6
|
-
|
6
|
+
- `PostsTable`から`hasMany`で`Comments`モデルにアソシエーション設定
|
7
|
-
|
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
|
ご存知でしたらご教示のほどよろしくお願いいたします。
|