Thanks Paulos for your advice. I could certainly add some manual checking before adding a child record. The question I am having in my mind is that should duplicate check be done by the hasOne relationship or is it possible. Am I missing anything here?
Robin On May 5, 2:27 am, paulos nikolo <paulitosthe...@gmail.com> wrote: > Hi Robin.I am not an expert coz i am trying to build a similar app of yours > so i ll tell you my opinion.As i saw your tables format i think you should > set depentent=true in user model and the exslusive field in profile model > true.The 1st one will delete the associated profile if the user has been > deleted and the 2nd (i think) is what u search for.Alternatively , you can > set the add profile link to invisible when a user has already a profile so > that the rest CRUD functions can be shown. > > 2009/5/4 Robin <robin2...@gmail.com> > > > > > Hello, i'm new both to php and cake, so please excuse me if this is > > another obvious noob question. > > > I was trying to understand how associations work by building up the > > example in the manual section of cakephp.org, i was able to build it > > up using bake with no much effort. > > > The thing is, i have a users table and a profiles table, they look > > like this: > > > CREATE TABLE `profiles` ( > > `id` int(11) NOT NULL auto_increment, > > `name` varchar(100) collate utf8_unicode_ci NOT NULL, > > `header_color` varchar(100) collate utf8_unicode_ci NOT NULL, > > `user_id` int(11) NOT NULL, > > PRIMARY KEY (`id`), > > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; > > > CREATE TABLE `users` ( > > `id` int(11) NOT NULL auto_increment, > > `first_name` varchar(100) collate utf8_unicode_ci NOT NULL, > > `last_name` varchar(100) collate utf8_unicode_ci NOT NULL, > > `username` varchar(100) collate utf8_unicode_ci NOT NULL, > > `password` varchar(100) collate utf8_unicode_ci default NULL, > > PRIMARY KEY (`id`) > > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; > > > using bake i was able to create the models and to define the following > > associations > > > User: > > var $hasOne= array('Profile' =>array('className' => 'Profile', > > 'foreignKey' => > > 'user_id', > > 'conditions' => '', > > 'fields' => '', > > 'order' => '', > > 'dependent' => ''),); > > Profile: > > var $belongsTo = array('User' =>array('className' => 'User', > > 'foreignKey' => > > 'user_id', > > 'conditions' => '', > > 'fields' => '', > > 'order' => '', > > 'counterCache' => > > ''),); > > > Which seems good to me, but testing the application i was able to > > create a second profile for one user. > > I was guessing if thehasOneassociation should check that and return > > an error, or I am missing something? > > On the other hand, i builded the tables based on my own understanding > > of the example, maybe they are wrong, and so the whole example. > > > I was thinking of adding an UNIQUE clause on the user_id so forcing > > only one profile per user but doing that causes the application to > > show an ugly error database message, which is correct and obviously i > > can take care of it, but not seems to follow the elegant and simple > > rules of the rest of the application. > > > Thanks in advance > > > Robin --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---