Hi there!

I'm getting started with sfDoctrineGuardPlugin and after doing a few
tutorials, I started to implement it in one of my projects. I have
created a registration form and embedded the Profile class form. So
far, so good - whenever a new user registers, both the sfGuardUser and
Profile objects get saved to the database and are correctly
associated.

Now, I have a "users" sfGuardGroup with a set of permissions (its id
is 1), and I'd like to put all members who sign up via this
registration form automatically in this group. My first idea was to
override the save() method of the Profile model to do that:

class Profile extends BaseProfile
{
        public function save(Doctrine_Connection $conn = null)
        {
                $ret = parent::save($conn);

                $relation = new sfGuardUserGroup();
                $relation->user_id = $this->sf_guard_user_id;
                $relation->group_id = 1;
                $relation->save();

                return $ret;
        }
}

However, when I try to add a new user through the form I get a SQL
error:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
'5-1' for key 'PRIMARY'

... where 5 is the id of the newly created sfGuardUser and 1 is the id
of the sfGuardGroup I'm trying to add the user to. Of course, I
checked the database and there are no other sfGuardUserGroup objects
with the 5-1 key combination, hence it's not a duplicate record thing.

I tried searching around, but found nothing about this error other
than a few complaints about the save() method not being called on
objects saved through embedded forms. It seems that is the issue here
- I'm trying to create a many-to-many relation, but the user is not
yet saved to the database when I try saving the relation, so the
database throws an error because I'm adding a reference to an object
that does not exist. However, if that is really the problem, isn't it
weird that my profile actually has its sf_guard_user_id property set?!

So, the 64.5 million dollar question: how do I get this to act like I
expect it to do? :)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to