エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3のアソシエーション機能を使い関連レコードをまとめて削除

   

CakePHP3のアソシエーション機能を使い関連レコードをまとめて削除

 

CakePHP3のアソシエーション機能による削除処理の解説

 
CakePHP3でassociatedを使って関連データをまとめて保存する方法(hasOne、hasMany、belongsTo)」の記事で、アソシエーション機能を使って関連するレコードをまとめて保存する処理の解説をしました。
 
今回は、そのまとめて保存したレコードを、まとめて削除する処理を解説します。
テーブルの構造などは、「CakePHP3でassociatedを使って関連データをまとめて保存する方法(hasOne、hasMany、belongsTo)」を参照してください。
 
 

コントローラーの修正はありません

 
下記のソースは、Bakeで作成したソースですが、コントローラーの修正は全くありません。
 

 
 

Tableファイルに「'dependent' => true」を追加

 
処理を追加する対象のファイルは「EntryDatasTable.php」です。
「EntryDatasTable.php」にある「hasMany」に「’dependent’ => true」を追加することで、関連テーブルの情報がまとめて削除されます。
 

 
たったこれだけのコードを追加するだけで、「EntryDatas」テーブルのレコードを削除する際に、関連する「JobDatas」テーブルのレコードもすべて削除してくれます。
 
 
アソシエーション機能を使って関連データを保存する際にも感じましたが、削除する場合も簡単に関連データを削除でき、まさにフレームワークを使うメリットを存分に発揮する箇所ですね。
 
 
詳細については、CakePHP3のマニュアルを参照してください。
https://book.cakephp.org/3.0/ja/orm/deleting-data.html

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応
CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応

CakePHP3のユーザ管理プラグイン Usersは、ユーザ登録、メール認証、ログイン認証、ユーザ管理、権限管理、reCAPTCHAなど会員制のサイトを簡単に実現可能。その導入方法、カスタマイズ方法を解説。

CakePHP 2.3 Search Pluginで検索処理 その4前方一致検索、後方一致検索、不等号による検索、between句による範囲検索

CakePHPの検索プラグイン Search Pluginの検索処理の中で前方一致検索、後方一致検索、不等号による検索、between句による範囲検索の解説です。

CakePHP 2.3 主キー(ID)以外のキーで更新方法 updateAll

主キー(ID)以外のカラムをキーとして更新する方法、updateAllの使い方をサンプルを用いて解説します。

CakePHP 2.3 Search Pluginで検索処理 その3入力エリア一つで複数の項目を同時に検索する方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で入力エリア一つで複数の項目を同時に検索する方法を解説。

CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説

CakeDC謹製Usersプラグインの紹介。Usersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。

CakePHP3でassociatedを使って関連データをまとめて保存する方法(hasOne、hasMany、belongsTo)

CakePHP3で関連データをまとめて保存する方法。hasOne、hasMany、belongsTo等の関連データはassociatedを追加することでまとめて保存することができます。

CakePHP 2.3 デバッグキット(DebugKit)超初心者向けフォロー講座

CakePHP初心者に向けてデバッグキット(DebugKit)のインストール方法、はまりポイントを解説。

CakePHP 2.3で確認画面付きのお問い合わせフォームの作り方

CakePHPで確認画面付きのお問い合わせフォーム、メールフォームの作り方をサンプルを提示しながら解説。

CakePHP3のビューで受取ったテーブルのオブジェクトを連想配列に変換する方法
CakePHP3のビューで受取ったテーブルのオブジェクトを連想配列に変換する方法

コントローラーからビューに送ったテーブルのオブジェクトを連想配列に変換し、ビューの中で自由に使えるようにするメソッド「toArray()」の解説。連想配列に変換できれば利用度アップ!

MySQL、CakePHP 2.3で「tinyint(1)」の Boolean型の動作を再確認

MySQL+CakePHPの環境で「tinyint(1)」を利用する際の動作を検証。「tinyint(1)」の Boolean型について CakePHPでは自動処理が実施されていることを確認しました。