mysql - 以下连接结构是否适用于 CakePHP 查找?

标签 mysql cakephp search join

以下连接结构的格式是否正确,可以与 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/

相关文章:

php - CakePHP - TinyMceHelper 帮助器错误:方法 TinyMceHelper::__name 不存在

java - 如何使用通配符搜索字符串数组

objective-c - 使用 RestKit 搜索 CoreData

html - 从 MySQL 中的所有 img src 标签中删除一个属性(Wordpress 安装)

php - (mySQL 删除重复的数据库条目 WHERE ...

mysql - 运行personal.xlsb宏而不打开excel

php - 按字母顺序对 MYSQL 结果进行升序排序,但不将 'The' 排序为 T?

.htaccess - CakePHP 和 AngularJs 中的路由和谐 : htaccess rules to send user to index. html 或 bootstrap index.php

php - 如果我在 blob 中没有图像以避免错误

php - 为什么 MATCH against 的效果不如 Exact match?