Ignore that, i didn't do enought testing before posting this. The
problem is still there, but i have more info.

In my users controller:

$this->User->Conversation->findAll() works, but retieves all the
conversations, not just the ones for a certain user

$this->User->ConversationsUser->findAllByUserId($userId) deletes the
entries in the ConversationsUser table.

And whenever i try to use this table in this way, entries are deleted.

I know it sounds stupid, but i really can't figure it out.Is there no
way i can retrieve the conversations for a certain user, by passing
that user id as an argument from the users controller? (or even from
the conversations controller)

Oana

On May 19, 4:26 pm, oana <[EMAIL PROTECTED]> wrote:
> I wrote almost everything again, because it was getting too messy, and
> now it works. (though the changes i've made don't concern any logic
> that may delete entries)
>
> Thank you very much for helping.
>
> On May 19, 11:09 am, David Christopher Zentgraf <[EMAIL PROTECTED]>
> wrote:
>
> > Well, nothing's being deleted in those queries, only SELECTed.
> > Of the top of my head I'd say there are two possibilities:
>
> > 1) Some really weird problem with your database engine that causes it
> > to forget selected data. *
> > 2) There's some logic in your application that deletes entries which
> > is accidentally triggered.
> > *unlikely
>
> > What you usually do to select related model data is just this:
> > - You define your two models very simply, as 
> > inhttp://book.cakephp.org/view/66/models#introduction-67
> > - You set up associations between your two models as 
> > inhttp://book.cakephp.org/view/66/models#associations-78
> > - In your controller you do something like $this->User->find(), which
> > returns an array like:
>
> > Array
> > (
> >      [User] => Array
> >          (
> >              ...
> >          )
> >      [Conversation] => Array
> >          (
> >              ...
> >          )
> > )
>
> > If you want to search for a specific entry in "Conversation" you'd do
> > something like this:
> > $this->User->Conversation->find(array('topic' => 'How to bake
> > cookies'));
>
> > If your code is anymore complicated than that you're probably not
> > doing it right.
> > If you paste some more of your code (relevant controller actions,
> > model definitions etc.) into the bin (http://bin.cakephp.org/) we
> > might be able to tell where the problem is.
>
> > On 19 May 2008, at 16:35, oana wrote:
>
> > > These are the queries related concerning users, conversations, and the
> > > join table.
>
> > > If it isn't too much trouble, maybe you can point me to a complete
> > > piece of code  for the users cotroller, to select a certain user's
> > > conversations. Because i have tried several, and i think this is my
> > > problem.
>
> > > Thanks for helping,
> > > Oana
>
> > > SELECT `Conversation`.`id`, `Conversation`.`availability`,
> > > `Conversation`.`created`, `Conversation`.`modified`,
> > > `Conversation`.`description`, `Conversation`.`title`,
> > > `Conversation`.`postscount`, `Conversation`.`ideascount`,
> > > `ConversationsUser`.`conversation_id`, `ConversationsUser`.`user_id`
> > > FROM `conversations` AS `Conversation` JOIN `conversations_users` AS
> > > `ConversationsUser` ON (`ConversationsUser`.`user_id` IN (1) AND
> > > `ConversationsUser`.`conversation_id` = `Conversation`.`id`)
>
> > > SELECT COUNT(*) AS `count` FROM `conversations_users` AS
> > > `ConversationsUser` LEFT JOIN `conversations` AS `Conversation` ON
> > > (`ConversationsUser`.`conversation_id` = `Conversation`.`id`) LEFT
> > > JOIN `users` AS `User` ON (`ConversationsUser`.`user_id` =
> > > `User`.`id`) WHERE `User`.`id` = 1
>
> > > SELECT `ConversationsUser`.`conversation_id`,
> > > `ConversationsUser`.`user_id`, `Conversation`.`id`,
> > > `Conversation`.`availability`, `Conversation`.`created`,
> > > `Conversation`.`modified`, `Conversation`.`description`,
> > > `Conversation`.`title`, `Conversation`.`postscount`,
> > > `Conversation`.`ideascount`, `User`.`id`, `User`.`username`,
> > > `User`.`email`, `User`.`password`, `User`.`group`,
> > > `User`.`first_name`, `User`.`last_name` FROM `conversations_users` AS
> > > `ConversationsUser` LEFT JOIN `conversations` AS `Conversation` ON
> > > (`ConversationsUser`.`conversation_id` = `Conversation`.`id`) LEFT
> > > JOIN `users` AS `User` ON (`ConversationsUser`.`user_id` =
> > > `User`.`id`) WHERE `User`.`id` = 1 LIMIT 20
>
> > > On May 18, 11:53 am, David Christopher Zentgraf <[EMAIL PROTECTED]>
> > > wrote:
> > >> Can you post the SQL queries generated by Cake?
> > >> Sounds really weird.
>
> > >> On 18 May 2008, at 16:04, oana wrote:
>
> > >>> Hi Keith,
>
> > >>> Your summary is very accurate, that is exactly what's happening.
>
> > >>> This is how i select the conversations for an user, in the user
> > >>> controller:
>
> > >>> $this->set('conversations',$this->paginate('ConversationsUser',
> > >>> array('User.id' => $userId)));
>
> > >>> Thank you for replying.
>
> > >>> On May 18, 6:48 am, Keith <[EMAIL PROTECTED]> wrote:
> > >>>> Hi Oana,
>
> > >>>> Can you post some code?
>
> > >>>> What do you mean by "extract?"
>
> > >>>> It sounds like you've got your HABTM working properly, but when you
> > >>>> try to create a view that shows conversations for a specific user
> > >>>> the
> > >>>> join table rows associated with that user are deleted.  Is this an
> > >>>> accurate summary of your problem?
>
> > >>>> On May 17, 4:34 am, oana <[EMAIL PROTECTED]> wrote:
>
> > >>>>> I know it has been posted a lor about this topic...but i can't
> > >>>>> figure
> > >>>>> it out. Maybe someone with some experience in cake may help me,
> > >>>>> because i am a newbie.
>
> > >>>>> I have 2 classes, Users and Conversations, between them it's habtm
> > >>>>> relationship, and i have the join table ConversationsUser.
>
> > >>>>> In the Users controller i have a function which extracts all the
> > >>>>> conversations of an user give by it's id. Whenever i try to do
> > >>>>> this,
> > >>>>> the fields in the join table are deleted.
>
> > >>>>> Can anyone please help me? I didn't post this right away, i
> > >>>>> tried a
> > >>>>> lot to make it work, but i think it's something big i am missing.
>
> > >>>>> Thanks,
> > >>>>> Oana
--~--~---------~--~----~------------~-------~--~----~
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