2017-05-29 1 views
1

Ich möchte alle untergeordneten Knoten (untergeordneten Kategorien) löschen, während die übergeordnete Kategorie (mit 'abhängig' => wahr) löschen. Hier ist die kurze Erklärung Ich arbeite mit einem Self-Linking-Modell. Nehmen wir an, ich habe 2 TabellenIn Self-Linking-Modell, löschen Sie den Kindknoten, während Elternknoten löschen

1. Categories 
2. Products 

wo die Kategorie Multilevel ist. so dass ich eine Spalte in der Tabelle Kategorien als "parent_category_id" benannt habe. Ich habe mein Modell als Gebrüll Selbst verbunden,

$this->belongsTo('FileCategories', [ 
     'foreignKey' => 'parent_category_id', 
     'className' => 'FileCategories', 
     'joinType' => 'INNER', 
     'dependent'=> true 
    ]); 

Dependent „true“ wird in diesem cenerio arbeiten, so dass ich etwas tue, falsch oder gibt es eine andere Methode, dies zu tun.

Antwort

1

Sie sollten auch hasMany Beziehung wie folgt hinzufügen.

$this->hasMany('Parent', [ 
    'foreignKey' => 'parent_category_id', 
    'className' => 'FileCategories', 
    'joinType' => 'INNER', 
    'dependent'=> true 
]); 

Wenn es nicht funktioniert, können Sie diese Option versuchen ('cascadeCallbacks' => true).

$this->hasMany('Parent', [ 
    'foreignKey' => 'parent_category_id', 
    'className' => 'FileCategories', 
    'joinType' => 'INNER', 
    'dependent'=> true, 
    'cascadeCallbacks' => true 
]); 
+0

Arbeitete für mich. Habe nie gemerkt, dass ich "abhängig" => true für belongsTo association anwende. @ Vipul –

Verwandte Themen