Hola amigos…!!
Tengo el siguiente problema, tengo estas 3 tablas,
tb_A(id, is_deleted)
tb_B(id, is_deleted)
tb_AB(id, a_id, b_id, is_deleted)
defaultScope
public function defaultScope(){
return array('condition' => $this->getTableAlias(false,false).'.is_deleted = 0');
}
Relacion A:
public function relations(){
return array(
'bs'=>array(self::MANY_MANY, 'B', 'tb_AB(a_id, b_id)')
);
}
Relacion B:
public function relations(){
return array(
'as'=>array(self::MANY_MANY, 'A', 'tb_AB(a_id, b_id)')
);
}
Tengo las relaciones hechas para la tabla A y B de tipo Many_Many y tengo definido un defaltScope para que solo me de aquellos registros que is_deleted = 0, los que no han sido eliminados.
Hasta aquí todo funciona bien,
$a = A::model()->findByPk($id);
$bs = $a->bs;
Y me entrega todos los B que tenga ese A o viceversa, el problema esta cuando elimino algun B de A, que solo trato de eliminar la relación sin eliminar el B totalmente, solo la relación en tb_AB colocando is_deleted en 1,
$a = A::model()->findByPk($id);
$bs = $a->bs;
Solo me debería devolver los que están en is_deleted = 0 pero no lo hace, me devuelve todos los que están relacionados.
Alguna sugerencia amigos…