Relacion (Many_Many) Ignora Defaultscope..!

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…