mysql - CakePHP/MySQL 获取松散关联的数据

标签 mysql cakephp

所以我的数据库中有两个表,第一个表是在订阅付款时创建的,并以用户的电子邮件作为引用。然后用户在事后创建一个帐户。因此未设置外键。

我想生成一个查询,从该订阅生成表中获取数据。我正在尝试这样的事情:

    // Querying the members table, trying to include member_subsr data
    $oMembers = $Members->find('all',
        [
            'contains' => ['member_subscr'],
            'conditions' => [
                'member_email' => 'members.email'
            ],
            'order' =>
                [
                    'id' => 'DESC'
                ]
        ]);

错误:未找到列:1054“where 子句”中存在未知列“member_email”

不知道从这里去哪里。我想通过用户电子邮件而不是外键关联条目。

如有任何帮助,我们将不胜感激。

最佳答案

我已经解决了。当处理与平常不同的外键时,您必须在 MembersTable 初始化函数中设置外键和新的 BindingKey。

    // In MembersTable
     $this->hasOne('member_attributes')
        ->setForeignKey('member_email')
        ->setBindingKey('email');
    // in Controller
    $oMembers = $Members->find('all')->contain(['member_attributes']);

关于mysql - CakePHP/MySQL 获取松散关联的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53205377/

相关文章:

mysql - ASP.NET 在调用存储过程时说 FUNCTION 不存在

php - CakePHP:ACL 和/或身份验证

cakephp - 代码中意外的T_FUNCTION,是什么意思?

php - 使用cakephp从mysql数据库获取大量数据

php - 以树结构显示用户?

mysql - OSX 警告 user/local/mysql/data 目录不属于 mysql 或 _mysql 用户

MySQL按多列分组问题

php - 如何从2个表中输出表格数据?

php - 如何在我的 CakePHP 编辑器中突出显示 HTML 语法?

cakephp - 如何在 CakePHP 查询中创建 `IN` 子句?