以下连接结构的格式是否正确,可以与 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
)
)
),
最佳答案
令人困惑的部分是
'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
,因为这是连接条件的默认方式。
关于mysql - 以下连接结构是否适用于 CakePHP 查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519127/