0

以下连接结构的格式是否正确,可以与 CakePHP 查找一起使用?当我将它与条件一起使用时,这似乎不起作用,并且我的直觉告诉我结构已关闭。我是新加入,所以任何帮助表示赞赏。

'joins' => array(
    (int) 0 => array(
        'table' => 'cheeses_milk_sources',
        'alias' => 'CheesesMilkSource',
        'type' => 'INNER',
        'conditions' => array(
            (int) 0 => 'Cheese.id = CheesesMilkSource.cheese_id'
        )
    ),
    (int) 1 => array(
        'table' => 'milk_sources',
        'alias' => 'MilkSource',
        'type' => 'INNER',
        'conditions' => array(
            (int) 0 => 'CheesesMilkSource.milk_source_id = MilkSource.id',
            'CheesesMilkSource.milk_source_id' => '1'
        )
    )
),
'conditions' => array(
    'AND' => array(
        (int) 0 => array(
            'Cheese.cheese_producer_id' => (int) 35
        ),
        (int) 1 => array(
            'Cheese.active' => (int) 1
        )
    )
),
4

1 回答 1

1

令人困惑的部分是

    'conditions' => array(
        (int) 0 => 'CheesesMilkSource.milk_source_id = MilkSource.id',
        'CheesesMilkSource.milk_source_id' => '1'
    )

您将一个没有键的数组元素与一个键等于 的数组元素混合在一起CheesesMilkSource.milk_source_id

如果您需要在连接上指定两个条件,请执行以下操作

    'conditions' => array(
        'CheesesMilkSource.milk_source_id = MilkSource.id AND CheesesMilkSource.milk_source_id = 1'
    )

也许下一个片段同样有效,但我不确定,目前无法对其进行测试 - 如果它与评论一起使用,请告诉我。

    'conditions' => array(
        'CheesesMilkSource.milk_source_id = MilkSource.id',
        'CheesesMilkSource.milk_source_id = 1'
    )

但是由于您要加入表格,也许您应该CheesesMilkSource.milk_source_id = 1输入查找的一般条件:

'conditions' => array(
   'Cheese.cheese_producer_id' => 35,
   'Cheese.active' => 1,
   'CheesesMilkSource.milk_source_id' => 1,
)

请注意,您不需要指定AND,因为这是加入条件的默认方式。

于 2013-08-30T04:05:40.367 回答