【CakePHP】アソシエーションされたモデルを削除する

2019年7月29日

バージョン:CakePHP 2.x

CakePHPで、アソシエーションが設定されたモデルのデータを削除する方法についてです。

例えば会社(Company)というテーブルがあり、それに紐づいて社員(Staff)というテーブルがあるとします。
会社Aというデータを削除した場合に、会社Aの社員も同時に削除する場合には、モデルの「dependent」をtrueに設定します。

class Company extends AppModel {
    public $name = 'Company';
    public $hasMany = array(
        'Staff' => array(
            'className'  => 'Staff',
            'dependent'    => true
        )
    );
    public $hasOne = 'その他のモデルなど';
}

そしてコントローラーで削除を実行すると、その会社IDに紐づいた社員も同時に削除することができます。

$this-> Company->delete($id);

参考
CakePHP公式サイト(データを削除する)
CakePHP公式サイト(アソシエーション: モデル同士を繋ぐ)

スポンサーリンク