Tengo 3 mesas que dependen unas de otras.
1st level = partner_company
2nd level = partner
3rd level = partner_deals
En 1er nivel tenemos "id
". 2do nivel tiene "company_id
"que es la clave externa de partner_company"id
". 3er nivel tiene "partner_id
"que es la clave externa de la tabla asociada (2do nivel)"id
".
=> ahora quiero agregar la funcionalidad de cualquier empresa de eliminación de usuario que tenga id = 1
luego, también elimine todos los registros de la tabla de segundo nivel y la compañía de tercer nivel.
=> Si el administrador borra el registro del socio (2do nivel) que tiene id = 1
luego borre el registro de partner_deals (3er nivel) que tiene partner_id = 1
.
Entonces, ¿alguien puede ayudarme a agregar esta funcionalidad?
Gracias
Respuestas
1 para la respuesta № 1Puedes anular beforeDelete
para que se borren primero los registros que sean dependientes.
En tus partner_company
modelo hacer una relación con partner
modelo
public function getPartner(){
return $this->hasOne(Partner::className(), ["id" => "company_id"]);
}
public function beforeDelete() {
$this->partner->delete();
// call the parent implementation so that this event is raise properly
return parent::beforeDelete();
}
Haz lo mismo con los otros dos modelos. partner
y partner_deals