我需要帮助来解决CakePHP 1.1项目和findAll查询的问题。
以下是查询:
$events = $this->EventCategory->findAll(null, null, array("EventCategory.name" => "ASC"));
这是结果数组的一个例子:
[1] => Array
(
[EventCategory] => Array
(
[id] => 1
[name] => Agencias
[date] => 2009-12-15 16:07:08
)
[EventSubcategory] => Array
(
[0] => Array
(
[id] => 2
[event_category_id] => 1
[name] => Agencias de marketing promocional
[date] => 2009-12-15 16:09:51
[Event] => Array
(
[0] => Array
(
[id] => 1
[event_subcategory_id] => 2
问题是,我需要通过Event.id = X进行过滤,在Cake 1.2+中我使用相关表的包含和过滤,但在1.1中我找不到文档来制作它。
PS:项目太大,无法迁移版本。
答案 0 :(得分:0)
您是否尝试过将Event.id添加到您的条件中?如果你有正确的递归设置(它看起来像你有),这可能会有用。
如果您想确定,那么也可能值得将Event添加到您的EventCategory模型中。
var $hasMany = array(
'EventSubcategory' => array(
'className' => 'EventSubcategory',
'foreignKey' => 'event_category_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => ''
),
'Event' => array(
'className' => 'Event',
'foreignKey' => false,
'dependent' => false,
'conditions' => 'Event.event_subcategory_id = EventSubcategory.id',
'fields' => '',
'order' => ''
)
);
确保在EventSubcategory之后将事件添加到$ hasMany。