对于cakephp find(),hasOne为null条件

时间:2012-01-04 23:22:02

标签: php cakephp cakephp-1.3

我正在处理一些非常糟糕的继承代码,并且有一个查询从表中提取事件。事件模型具有$hasOne = array('blocked'); - 我的目标是仅返回阻塞表中没有条目的所有事件。尽管设置了$ hasOne,但仍然会分别查询阻塞事件表,因此我不能将这些字段用作条件。

查询本身已经在'contains' => ...内,因此使用'joins' => ...手动强制加入不起作用。

更新:这是现在存在的查询查询:

$params = array(
    'conditions' => array(
        'Restaurant.id' => $id,
        'Restaurant.inactive' => 0, 'Restaurant.deleted' => 0,
        'Restaurant.bkwindow <=' => (strtotime($criteria['Restaurant']['date']) - strtotime("today"))/86400
    ),
    'fields' => array(),
    'contain' => array(
        'Experience' => array(
            'Experience_blocking'
        )
    )
);

我需要Experience表只返回在Experience_blocking表中没有条目的结果。经验是使用$ hasOne of Experience_blocking设置的,但它永远不会有效,它总是将其视为可包容的。

1 个答案:

答案 0 :(得分:0)

由于您没有显示太多代码,我会尝试猜测您的问题是什么,并且详细说明。您无法使用可包含行为执行所需操作。

有关更详细的回答,请参阅this post