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?
> >>>
> >>>>>>>> I've run the SQL from the debug mode and the output looks
> >>>>>>>> exactly like
> >>>>>>>> I expect it should look with the 2 users Rich & Lisa
> >>>>>>>> associated with
> >>>>>>>> the document properly.
> >>>
> >>>>>>>> Thank you in advance for any help you might be able to provide!
> >> >
> >
> >
> > >
> >
>
>
> --
> Xavier A. Mathews
> Student/Developer/Web-Master
> GG Client Based Tech Support Specialist
> Hazel Crest Illinois
> [EMAIL PROTECTED]
> "Fear of a name, only increases fear of the thing itself."
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to