I'm on day two of trying to figure this out, we'll see if this helps.

I've got three Models.  Lessons belongsTo Parts and Lessons HABTM
Pieces (and vice-versa)

Here's the model definition for Lessons, pretty straightforward.

class Lesson extends AppModel {
        var $name = 'Lesson';
        var $belongsTo = array(
                'Part' => array(
                        'className' => 'Part',
                        'foreignKey' => 'part_id'
                )
        );

        var $hasAndBelongsToMany = array(
                'Piece' => array(
                        'className' => 'Piece',
                        'joinTable' => 'lessons_pieces',
                        'foreignKey' => 'lesson_id',
                        'associationForeignKey'=> 'piece_id',
                        'unique' => true
                )
        );
}


The problem comes when trying to use findAll to locate a lesson
associated with a particular piece.  This is the findAll command I'm
using with the conditions array....


$resultArray = $this->Lesson->findAll(array('Piece.id' => '1',
'Lesson.part_id' => '2'));


Looking at the SELECT query generated by Cake, I see that, unlike the
parts table, the pieces table is essntially ignored by findAll even
though there's a HABTM association, thus the WHERE part of the query,
where I ask for Piece.id, generates an error.

Query: SELECT `Lesson`.`id`, `Lesson`.`created`, `Lesson`.`modified`,
`Lesson`.`title`, `Lesson`.`issue`, `Lesson`.`part_id`, `Part`.`id`,
`Part`.`part` FROM `lessons` AS `Lesson` LEFT JOIN `parts` AS `Part`
ON (`Lesson`.`part_id` = `Part`.`id`) WHERE `Piece`.`id` = 1 AND
`Lesson`.`part_id` = 2

I'm confused as to how I might search for HABTM model associations via
a simple method such as findAll...  I feel this might be related to
the following --->  https://trac.cakephp.org/ticket/1209


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
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