我需要帮助解决一个问题与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
问题是,我需要按事件进行过滤。id = X,在Cake 1.2+中,我使用关联表的包含和过滤,但在1.1中,我没有找到这样做的文档。
PS:项目太大,不能迁移版本
是否尝试添加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' => ''
)
);
确保Event被添加到EventSubcategory之后的$hasMany .