Has_One Relation Weird Behavior

Hi !

I would like to check if a User is related to a specific event.

I have :

Event (id, name, description…) User_event(user_id, event_id, is_in,…)

In Event.php (model) :

public function relations()


      $r = array

     'userCheck'      => array(self::HAS_ONE,


                                  'event_id',  ),

     'userEvent'      => array(self::HAS_MANY,




I also have this method :


     * A scope that make sure the user is associated to the event


     * @return Event


    public function userEvent($userID)


      $criteria = new CDbCriteria();

      $criteria->with = array('userCheck');

      $criteria->condition = 'userCheck.user_id = :event_user_id ';

      $criteria->params    = array(':event_user_id'=>$userID);


      return $this;


But, because of this, when I update an event, userCheck is checked and find that there’s not a single user_event attached to a specific Event. Logical because there could be several user for an event. So, it deletes ALL other user_event attached to this event…

How to make sure that userCheck checks only if a spectific user is attached to the event ?

I precise that the code above is not mine but other developer’s one.

–> User exists in THIS event…

How can I do that ?