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

Reply via email to