Has anyone successfully been able to do something like this?  (I'm
using CakePHP 1.3 RC4)


I have three models:

class ATable extends AppModel {

    var $name = 'ATable';
    var $hasOne = array('BTable' => array( 'foreignKey' => false,
                                            'type' => 'INNER',
                                            'conditions' => array(
                                                'BTable.a_table_id =
ATable.id') )
                        );

}

class BTable extends AppModel {

    var $name = 'BTable';
    var $hasOne = array('CTable' => array( 'foreignKey' => false,
                                            'type' => 'INNER',
                                            'conditions' => array(
                                                'CTable.b_table_id =
BTable.id') )
                        );

}

class CTable extends AppModel {

    var $name = 'CTable';

}



And I have the following MySQL tables:

CREATE TABLE a_tables (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    schedule_template_id INT(11),
    weight INT(11)
);

INSERT INTO a_tables (name, weight)
    VALUES ('A', 1);


CREATE TABLE b_tables (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    a_table_id INT(11),
    weight INT(11)
);

INSERT INTO b_tables (name, a_table_id, weight)
    VALUES ('B', 1, 1);


CREATE TABLE c_tables (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    b_table_id INT(11),
    weight INT(11)
);

INSERT INTO c_tables (name, b_table_id, weight)
    VALUES ('C', 1, 1);




In my a_tables_controller.php file it looks like the following:

class ATablesController extends AppController {

    var $name = 'ATables';

    function index() {
        $this->set('a_var', $this->ATable->find('all'));
    }

}



And I am expecting CakePHP to set a variable that looks like the
following:

Array
(
    [0] => Array
        (
            [ATable] => Array
                (
                    [id] => 1
                    [name] => A
                    [schedule_template_id] =>
                    [weight] => 1
                )

            [BTable] => Array
                (
                    [id] => 1
                    [name] => B
                    [a_table_id] => 1
                    [weight] => 1
                )

            [CTable] => Array
                (
                    [id] => 1
                    [name] => C
                    [b_table_id] => 1
                    [weight] => 1
                )

        )

)




But in reality... this is all I am getting back (just the first two
models):

Array
(
    [0] => Array
        (
            [ATable] => Array
                (
                    [id] => 1
                    [name] => A
                    [schedule_template_id] =>
                    [weight] => 1
                )

            [BTable] => Array
                (
                    [id] => 1
                    [name] => B
                    [a_table_id] => 1
                    [weight] => 1
                )

        )

)



Any idea why CakePHP isn't giving me a complete "tree" of results?  I
read about something similar happening for someone else at this link:
http://groups.google.com/group/cake-php/browse_thread/thread/24444f1922523c17/9b2db4b7a05ce1e8?lnk=gst&q=hasmany+hasmany#

And it sounds like something that was addressed with CakePHP 1.3.  So
I'm using 1.3 (RC4)... yet it doesn't seem to allow me to use multi-
level models.

Thanks for any help,
Andy

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

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