Keith, Bin you models and send the link to the bin in your email, I will show you how to fix it. http://bin.cakephp.org/add/Keith
-- /** * @author Larry E. Masters * @var string $userName * @param string $realName * @returns string aka PhpNut * @access public */ On Sat, Oct 11, 2008 at 8:45 PM, Keith <[EMAIL PROTECTED]> wrote: > > So then... > > Does that mean that my problem is that I need to make my user_id in > the projects table something like owner_id so that it won't get > grouped in with the traditional habtm relationship that already exists > with the user model? > > Thanks for the assistance. > > - Keith > > On Oct 11, 9:17 pm, "Larry E. Masters aka PhpNut" <[EMAIL PROTECTED]> > wrote: > > Helps to read the manual: > > > > http://manual.cakephp.org/view/79/Relationship-Types > > "...however, aliases must be unique both within a single model and on > both > > sides of a belongsTo/hasMany or a belongTo/hasOne relationship. Choosing > > non-unique names for model aliases can cause unexpected behavior." > > > > -- > > /** > > * @author Larry E. Masters > > * @var string $userName > > * @param string $realName > > * @returns string aka PhpNut > > * @access public > > */ > > > > On Sat, Oct 11, 2008 at 6:59 PM, <[EMAIL PROTECTED]> wrote: > > > > > Ok yea i am not sure abt the first part but David was right the > > > debuging is impossible. > > > > > On 10/11/2008, David C. Zentgraf <[EMAIL PROTECTED]> wrote: > > > > > > A HABTM relationship will fetch data differently then a belongsTo > > > > relationship. > > > > HABTM will get you an array with multiple results, belongsTo just a > > > > "flat" array. > > > > $habtm = array( > > > > [0] => array(['id'] =>, ...), > > > > [1] => array(['id'] =>, ...) > > > > ) > > > > $belongsTo = array(['id'] =>, ...) > > > > > > When you specify multiple associations, you'll have to specify unique > > > > names for them. > > > > var $belongsTo = array( > > > > 'Owner' => array(...) > > > > ); > > > > var $hasAndBelongsToMany = array( > > > > 'Users' => array(...) > > > > ); > > > > > > You shouldn't/can't mix different associations under the same name. > > > > Your output is screwed up because you're mixing the "flat" array with > > > > the "multi" array. You can either fix that manually (also see Set > > > > Class) or just keep it simple and name your associations properly. > > > > BTW, your debug output is virtually impossible to read, use > > > > debug($array) or pr($array) to spot these kinda things a lot easier. > > > > > > On 11 Oct 2008, at 23:58, Keith wrote: > > > > > >> Hi Villas, > > > > > >> I tried clearing out the cache and that didn't fix it unfortunately. > > > > > >> I have the max debug level set. The code appears to be operating as > > > >> programmed. > > > > > >> I tried a simple habtm with belongs_to in a scenario where I only > had > > > >> those two models and still got the same results. > > > > > >> I think it's a problem with how CakePHP is creating the array. The > > > >> first element in the array has no numeric identifier. If you look > > > >> back at the screenshot in the initial post you'll see that the first > > > >> entry in the array is not [0] but rather is called [id] as it would > be > > > >> when there is a belongs_to and not a HABTM as well. > > > > > >> Unless I can figure something out I'm going to go ahead and just > > > >> report it to cakePHP as a bug because there are legit reasons, like > > > >> the one I'm building, where you'd want a habtm with a belongs_to in > > > >> the same model. > > > > > >> - Keith > > > > > >> On Oct 11, 8:14 am, villas <[EMAIL PROTECTED]> wrote: > > > >>> Hi Keith > > > > > >>> Thanks for the extra info although it still isn't very clear to me > > > >>> from that what's going on. However, I would mention: > > > >>> 1. Are you clearing your cache? You might have old data hanging > > > >>> around. > > > >>> 2. Did you try to set a higher debug level to get more info? > > > >>> 3. Did you try to experiment with Bake? You can try different > > > >>> scenarios which you should be able to get working without too much > > > >>> sweat. > > > > > >>> Best regards. > > > > > >>> On Oct 11, 6:31 am, Keith <[EMAIL PROTECTED]> wrote: > > > > > >>>> Just as a clarification on why I have it set up this way... > > > > > >>>> The belongs_to is there because the users that creates the project > > > >>>> becomes the owner. > > > >>>> The has_and_belongs_to_many is there so that if a user wants > someone > > > >>>> outside their department to access it they can manually add them. > > > > > >>>> The problem looks like it's stemming from how cakePHP is handling > > > >>>> the > > > >>>> array... > > > > > >>>> for the belongs_to the array keys are based on field names like > > > >>>> [id] & > > > >>>> [first_name], etc. > > > >>>> for the HABTM array the array keys are sequential as the "related > > > >>>> users" foreach loop expects. > > > > > >>>> - Keith > > > > > >>>> On Oct 11, 1:18 am, Keith <[EMAIL PROTECTED]> wrote: > > > > > >>>>> It looks to me like this is what is happening, but it's very > > > >>>>> strange... > > > > > >>>>> Even when no users are associated I'm getting 8 blank associated > > > >>>>> users > > > >>>>> which is exactly how many elements are in the array... > > > > > >>>>> So... > > > > > >>>>> It looks like it's taking the first character from each part of > the > > > >>>>> first entry in the array and putting it there... > > > >>>>> K = Keith = First Name > > > >>>>> M = Medlin = Last Name > > > >>>>> etc. for each of the fields. > > > > > >>>>> So...I'm totally confused why the following code would produce > > > >>>>> that: > > > > > >>>>> SQL Query: > > > >>>>> SELECT `User`.`id`, `User`.`first_name`, `User`.`last_name`, > > > >>>>> `User`.`email`, `User`.`date_created`, `User`.`last_login`, > > > >>>>> `User`.`username`, `User`.`password`, `ProjectsUser`.`user_id`, > > > >>>>> `ProjectsUser`.`project_id` FROM `users` AS `User` JOIN > > > >>>>> `projects_users` AS `ProjectsUser` ON > > > >>>>> (`ProjectsUser`.`project_id` = 1 > > > >>>>> AND `ProjectsUser`.`user_id` = `User`.`id`) WHERE 1 = 1 > > > > > >>>>> Which returns a normal looking data set in SQL... > > > > > >>>>> Relevant View Code: > > > >>>>> <?php > > > >>>>> $i = 0; > > > >>>>> foreach ($project['User'] as $user): > > > >>>>> $class = null; > > > >>>>> if ($i++ % 2 == 0) { > > > >>>>> $class = ' class="altrow"'; > > > >>>>> } > > > >>>>> ?> > > > >>>>> <tr<?php echo $class;?>> > > > >>>>> <td><?php echo $user['id'];?></td> > > > >>>>> <td><?php echo > $user['first_name'];?></td> > > > >>>>> <td><?php echo $user['last_name'];?></td> > > > >>>>> <td><?php echo $user['email'];?></td> > > > >>>>> <td><?php echo $user['date_created'];?></ > > > >>>>> td> > > > >>>>> <td><?php echo > $user['last_login'];?></td> > > > >>>>> <td><?php echo $user['username'];?></td> > > > >>>>> <td><?php echo $user['password'];?></td> > > > > > >>>>> project['User'] is what you see dumped above the related users > > > >>>>> table > > > >>>>> so you can see that the array doesn't look strange in any way. > Is > > > >>>>> this possibly a bug that needs reporting to the CakePHP trac? > > > > > >>>>> - Keith > > > > > >>>>> On Oct 10, 11:58 pm, Keith <[EMAIL PROTECTED]> wrote: > > > > > >>>>>> Thanks for the response. > > > > > >>>>>> The documents table exists but I'm not having any issues with > that > > > >>>>>> relationship as it's a simple has_many and belongs_to with my > user > > > >>>>>> model. > > > > > >>>>>> The real issue is why, what appears to be a valid array is > > > >>>>>> rendering > > > >>>>>> the way it is in the related users table on the view for the > > > >>>>>> projects > > > >>>>>> page. > > > > > >>>>>> To get the array that's there I just did a print_r on the $users > > > >>>>>> array > > > >>>>>> that is automatically generated by CakePHP. As you can see > > > >>>>>> there are > > > >>>>>> no missing keys and the hash lines up correctly with the data. > > > > > >>>>>> The thing I cannot figure out is why I have those garbage rows > > > >>>>>> in the > > > >>>>>> table. My database is clean. It has 3 users with normal > looking > > > >>>>>> data. The projects_users join table is clean with: > > > > > >>>>>> user_id | project_id > > > >>>>>> 3 | 1 > > > >>>>>> 2 | 1 > > > > > >>>>>> The user_id associated with the table has a corresponding user > > > >>>>>> as you > > > >>>>>> can see in the array. So I'm not sure why it's chunking up data > > > >>>>>> that > > > >>>>>> way it is in the related users table. > > > > > >>>>>> Any ideas? Or can you think of anything specifically I should > > > >>>>>> check > > > >>>>>> on outside of running the queries directly in SQL which I've > > > >>>>>> done and > > > >>>>>> they return the correct data. I think the problem is in the > > > >>>>>> view or > > > >>>>>> how the users array is being interpreted possibly. > > > > > >>>>>> - Keith > > > > > >>>>>> On Oct 10, 6:48 pm, villas <[EMAIL PROTECTED]> wrote: > > > > > >>>>>>> Hi Keith > > > > > >>>>>>> Not sure you've provided enough info here, and what we see > > > >>>>>>> looks a > > > >>>>>>> bit confusing. > > > >>>>>>> Is there also a 'documents' table? > > > >>>>>>> Did you set up a join table for the HABTM? > > > >>>>>>> What is the logic of having a Project belonging to a User in > > > >>>>>>> addition > > > >>>>>>> to using a join table so that many Projects may belong to a > User? > > > >>>>>>> Maybe what you have written makes more sense to others, but it > > > >>>>>>> suggests to me that you probably didn't read the > book.cakephp.org > > > >>>>>>> carefully enough. Have a good look again at the Models section > > > >>>>>>> and > > > >>>>>>> then post a followup question, bearing in mind my comments > > > >>>>>>> above and > > > >>>>>>> we can try our best to assist you better. > > > > > >>>>>>> Kind regards. > > > > > >>>>>>> On Oct 10, 9:44 pm, Keith <[EMAIL PROTECTED]> wrote: > > > > > >>>>>>>> I am running into a strange issue when I've got the following > > > >>>>>>>> model > > > >>>>>>>> structure: > > > > > >>>>>>>> User: > > > >>>>>>>> Has_Many: Projects > > > >>>>>>>> HABTM: Projects > > > > > >>>>>>>> Projects: > > > >>>>>>>> Belongs_To: User > > > >>>>>>>> HABTM: Users > > > > > >>>>>>>> So...everything works fine. When I create a new project and > > > >>>>>>>> select > > > >>>>>>>> multiple users they are indeed associated with the project as > > > >>>>>>>> is the > > > >>>>>>>> correct user who "owns' the project as per the Belongs_To > model > > > >>>>>>>> relationship. > > > > > >>>>>>>> However... > > > > > >>>>>>>> In the scaffolded view I get a really strange result that the > > > >>>>>>>> SQL > > > >>>>>>>> query doesn't actually generate when I run it in SQL... > > > > > >>>>>>>> I get a really bizarre output in the Related Users. Here's a > > > >>>>>>>> screenshot:http://www.keithmedlin.com/habtm_error.png > > > > > >>>>>>>> Any idea on why I've got what looks like a normal array > > > >>>>>>>> rendering > > > >>>>>>>> pretty garbled? > > > > ... > > > > read more ยป > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
