CakePHP / MySQL获得松散关联的数据

时间:2018-11-08 10:02:00

标签: 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'
                ]
        ]);

错误:Column not found: 1054 Unknown column 'member_email' in 'where clause'

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

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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