cakephp/mysql获取松散关联的数据

v1uwarro  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(333)

因此,我的数据库中有两个表,第一个是在支付订阅费时创建的,并以用户的电子邮件作为参考。然后用户在事后创建一个帐户。所以没有设置外键。
我想生成一个查询,从这个订阅生成表中获取数据。我试着这样做:

// 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' 不知道从这里到哪里去。我想通过用户电子邮件而不是外键来关联条目。
任何帮助都将不胜感激。

yv5phkfx

yv5phkfx1#

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

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

相关问题