Using 1.2.5
I'm having some trouble get a deep containment (PresentationFile) to
show up. No matter what I've tried, I only get Presentations. Can
anyone see something wrong with the following?
event.php
class Event extends AppModel
{
public $belongsTo = array('Country');
public $hasMany = array('Report', 'Presentation');
}
presentation.php:
class Presentation extends AppModel
{
public $belongsTo = array('Event');
public $hasMany = array(
'PresentationFile' => array(
'className' => 'PresentationFile',
'foreignKey' => 'presentation_id',
'dependent' => true
)
);
}
presentation_file.php:
class PresentationFile extends AppModel
{
public $useTable = 'presentation_files';
public $belongsTo = array('Presentation');
}
events_controller.php:
class EventsController extends AppController
{
public $paginate = array(
'Event' => array(
'fields' => array('*'),
'conditions' => array('Event.start_date < NOW()'),
'order' => array('Event.start_date' => 'DESC'),
'limit' => 10,
'contain' => array(
'Country',
'Report' => array(
'fields' => array('Report.id', 'Report.title')
),
'Presentation' => array(
'fields' => array(
'Presentation.id',
'Presentation.event_id',
'Presentation.title',
'Presentation.presenter'
),
'PresentationFile' => array(
'fields' => array(
'PresentationFile.id',
'PresentationFile.presentation_id',
'PresentationFile.directory',
'PresentationFile.basename',
'PresentationFile.size'
)
)
)
)
)
);
public function index()
{
$this->set('events', $this->paginate('Event'));
}
}
Debug shows the following:
Array
(
[0] => Array
(
[Event] => Array
(
[id] => 8
[title] => xxxxxx
[subtitle] =>
[start_date] => 2008-09-03
[end_date] => 2008-09-03
[venue] =>
[city] => Prague
[country_id] => 58
[full_date] => September 3, 2008
)
[Country] => Array
(
[id] => 58
[iso_code] => CZ
[name] => Czech Republic
)
[Report] => Array
(
)
[Presentation] => Array
(
[0] => Array
(
[id] => 117
[created] => 2008-09-01 00:00:00
[modified] => 2009-09-13 12:44:56
[event_id] => 8
[title] => xxxxxx
[slug] => xxxxxx
[presenter] => xxxxxx
)
[1] => Array
(
[id] => 118
[created] => 2008-09-01 00:00:00
[modified] => 2009-09-13 12:44:56
[event_id] => 8
[title] => xxxxxx
[slug] => xxxxxx
[presenter] => xxxxxx
)
(etc.)
There are DB records in presentation_files with presentation_id for
each of the Presentations.
Oddly, no matter what I put in the 'fields' array for Presentation, I
get all fields. This led me to believe that the problem was with the
cache, but that's been disabled and all cached files removed.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---